Я хочу смочь назвать сценарий оболочки contining следующей командой.
awk -F $'\xE7' '{OFS ="¬"} { $3 = sprintf("%010s". $3) ; print $0 }' > outputfile
Но я хочу смочь передать переменную сценария оболочки в эту команду, которая будет использоваться для замены $3
в рамках команды AWK.
Как я передаю переменную сценария оболочки в эту команду AWK?
Одинарные кавычки запрещают расширение. Переключите их.
awk ... '...'"$foo"'...' ...
Корректный способ сделать это использует переменную передающую функцию AWK. Кроме того, вероятно, только необходимо установить OFS
однажды, таким образом, необходимо выполнить в нем BEGIN
пункт.
awk -F $'\xE7' -v awkvar="$shellvar" 'BEGIN {OFS ="¬"} { $3 = sprintf("%010s". $3) ; print $0, awkvar }' input file > outputfile
Вы могли также использовать -v
установить OFS
:
awk -F $'\xE7' -v awkvar="$shellvar" -v OFS ="¬" '{ $3 = sprintf("%010s". $3) ; print $0, awkvar }' input file > outputfile
Я просто добавил переменную к print
оператор, так как я не знал точно, как Вы хотели использовать его.