Мне нужно заменить имя файла в файле на строку, которая является командой cp, и, следовательно, она должна заменить существующее имя файла исходным пунктом источника в одном файле. Файл разделяется запятой # мин образец файлаиспользовать awk или sed для замены строки динамически в файле
ABC,TS-R:56:UT-123,/apps/home/t.txt
ICA,Y6734YGSU,/apps/home/t2.txt
MDI,UI-HDGD-PO567,/apps/home/t3.txt
Теперь я хочу или AWK патч в команду, которая может заменить /apps/home/<filename>.txt
на cp /apps/home/<filename>.txt /apps/cmb/<filename>.txt
так после СЭД/AWK же файл должен иметь содержание
ABC,TS-R:56:UT-123,cp /apps/home/t.txt /apps/cmb/t.txt
ICA,Y6734YGSU,cp /apps/home/t2.txt /apps/cmb/t2.txt
MDI,UI-HDGD-PO567,cp /apps/home/t3.txt /apps/cmb/t3.txt
Я пробовал awk -F, '{$3="cp "$3" "$3""}1' OFS=, test.txt
, но его просто печатал ABC,TS-R:56:UT-123,cp /apps/home/t.txt /apps/home/t.txt
также в консоли и не менялся в файле.
Заранее спасибо.
работает точно так, как мне нужно, но почему он не вносит изменений в файл, его единственная печать на консоли, откуда я пытаюсь, это то, что я должен использовать его из скрипта и он работает? – innova
@innova Чтобы записать его обратно в файл: 'awk -F/'{print $ 1" cp ", $ 2, $ 3, $ 4" ", $ 2," cmb ", $ 4}' OFS =/file> tmp && mv tmp file' – Jotne
спасибо, теперь он пишет в файл. – innova