Tomsk Sysadmins Forum

Unix => Программирование => Topic started by: adventurerodnako on February 24, 2011, 20:37:18

Title: VIM: КАК передать значение переменной в название файла
Post by: adventurerodnako on February 24, 2011, 20:37:18
Подскажите ПЛИЗ.
Как в VIM сохранить файл но не d:\xxx.txt
а d:\@здесь типа переменная (кусочек текста)@.txt

например надо из одного файла создать МНОГО файлов порезав по 1й строке, название файла --> первое вхождение до запятой в каждой строке:

test1,типа текст1,типа текст1,типа текст1,типа текст1,типа текст1
test2,типа текст2,типа текст2,типа текст2,типа текст2,типа текст2
test3,типа текст3,типа текст3,типа текст3,типа текст3,типа текст3



должны получиться файлы с названиями

---test1---
test1,типа текст1,типа текст1,типа текст1,типа текст1,типа текст1

---test2---
test2,типа текст2,типа текст2,типа текст2,типа текст2,типа текст2

---test3---
test3,типа текст3,типа текст3,типа текст3,типа текст3,типа текст3


for i in getline(1, "$")
 echo substitute(i, ",.*", "", "")
.,+0w! D:\\<-- вот как сюда вставить переменную? -->.txt
endfor 


Заранее благодарен.
Title: Re: VIM: КАК передать значение переменной в название файла
Post by: nuclight on February 25, 2011, 17:03:16
Зачем vim? Задача очень просто делается даже на обычном шелле:

Code: [Select]
export IFS=","
cat input.txt | while read fname line; do
        echo "$fname,$line" > $fname
done