У меня есть файл сказать a.txt
и ниже содержание него:Распечатайте список полей, передаваемых в качестве переменной
bob 1 100
lincoln 2 200
chris 3 300
Содержимое файла, разделенных пробелами.
Используя awk, я мог бы получить доступ к каждому столбцу. Использование ниже команд для печати 1-й и 3-я столбцов, разделенных запятой:
cat a.txt | awk ' { print $1","$3} '
и я был успешным.
Теперь я хочу динамически передать критерии из другого сценария оболочки. Говоря критерии, я имею в виду - $1","$3
.
Я попробовал команду ниже, но это не сработало.
myvar="$1"
awk -v a="$myvar" ' { print a } ' a.txt
но это печатает $1
3 раза есть три строки в a.txt
.
Как передать список полей awk таким образом?
'«$ 1»' означает первый аргумент вашего скрипта. как вы назвали свой сценарий? 'script '1" '? Если 'a'' '' '' '' ', вы должны напечатать' $ a' – Kent
«$ 1», «$ 3» - эту часть нужно передавать динамически - вместе с разделителями. скажем, если у меня есть 5 столбцов, я могу отправить что-то вроде $ 1 ", $ 2" - ", $ 3" - "$ 4", "$ 5, т.е. 1 и 2, 4 и 5, разделенные запятыми и остальное -. передайте шаблон из другого файла в качестве аргумента, а команда awk будет в другом файле –