-1

У меня есть файл, содержащий список имен файлов, как это

file1.cfg
file2.cfg
file3.cfg

Я хочу, используя терминал Linux, разделить это на n файлов с заданным именем файла, каждый из которых также содержит имя файла в виде строки.

Например, после преобразования я хочу, чтобы содержимое file1.cfg было

filename=file1.cfg

и в file2.cfg

filename=file2.cfg

и т.п.

Каков наилучший способ сделать это?

3 ответа3

3

Предполагая, что ваш файл называется configs , вы можете добиться этого с

for i in $(cat configs); do echo "filename=$i">$i; done
3

При условии, что вы считаете awk как оболочку, это просто

awk '{print "filename="$0 >$0}' file.cfg
2

Нечто подобное должно сработать:

while read line; do echo "filename=$line" > $line; done < file

он откроет файл, прочитает его построчно, и для каждой строки создаст файл с именем, являющимся содержимым строки, а затем запишет в этот файл строку с содержимым команды echo (имя файла =), предостережение: я на самом деле не проверял это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .