2016-01-28 2 views
0

Как разбить файл через awk команду и настроить имя выходного файла?Нужно настроить имя файла вывода с помощью команды awk

Я попытался,

awk -v RS=$val '{ outfile = "'$filename'""." NR "'.${extension}'"; print > outfile}' $file 
+0

Пример: Вывод файла должен быть fileName001, fileName002, fileName003 .... fileName999. Я пробовал настроить его. Однако не удается найти какую-либо команду. Выходной ток: имя_файла1, filename2, имя_файла3 ...... fileName4 Обязательный выход: fileName001, fileName002, file003 ....... fileName999 –

+2

Не добавлять комментарий под свой вопрос - просто редактировать ваш вопрос, если у вас есть что добавить. Также включают ввод проб и ожидаемый результат. –

ответ

1

Вы можете использовать sprintf для создания имен файлов, как

outputfile = sprintf ("filename%03d.txt", NR); 

Некоторые вещи, которые будут отмечены в сценарии,

  • Вы не можете получить доступ к l непосредственно в вашем сценарии awk, вам необходимо создать переменные awk, используя -v formate.

    Так сценарий должен быть как

    awk -v filename=$filename -v extension=$extension '{ outputfile = sprintf (filename"%03d"extension, NR); print > outputfile }' 
    
  • awk не имеет каких-либо конкретных concatenation operator, просто пишу 2 строки вместе сцепляет их.

+0

Я пробовал, но я получаю синтаксическую ошибку. Пожалуйста, включите RS = $ val это также в команде, так как это фактор, по которому файлы становятся разделенными –

+0

@RaghvendraNayak Это всего лишь пример того, как скрипт может быть изменен. Вы можете добавить логику, чтобы она работала для вас. Надеюсь, поможет :) – nu11p01n73R

Смежные вопросы