Я новичок в Unix во всех его формах, поэтому, пожалуйста, будьте осторожны со мной!У меня есть сценарий bash, который передаст команду ls с произвольными именами файлов в sed, которая будет использовать произвольный шаблон замены для файлов, а затем он будет передан в awk для некоторой обработки.Уловка в том, что awk нужно знать как оригинальное имя файла, так и новое.
Мне удалось все, кроме ввода оригинальных имен файлов в awk.Например, предположим, что мои файлы являются test. *, А шаблон замены - 's: es: ar;', который будет заменять каждое вхождение "test" на "tart".В целях тестирования я просто использую awk для вывода того, что он получает:
ls "$@" | sed "$pattern" | awk '{printf "0: %s\n1: %s\n2: %s\n", $0,$1,$2}'
, где test. * В $ @, а шаблон хранится в $ pattern.Ясно, что это не приведет меня туда, где я хочу быть.Вывод, очевидно,
0: tart.c
1: tart.c
2:
Если бы я мог получить sed для вывода "test.c tart.c", то у awk было бы два параметра.Я поиграл с шаблоном безрезультатно, даже жестко закодировал "test.c" в замену.Но, конечно, это дало мне любительские результаты, такие как "ttest.c art.c".Возможно ли, чтобы sed запомнил ввод, а затем включил его в начало вывода?У меня даже есть правильные идеи?Заранее спасибо!