Использование функции printf awk для вывода n-х аргументов - PullRequest
0 голосов
/ 22 сентября 2011

Учитывая следующее содержимое файла:

alias command with whitespace-separated argument list
anotheralias othercommand and its arguments

как я могу напечатать что-то вроде:

       alias = command with whitespace-separated argument list
anotheralias = othercommand and its arguments

В настоящее время я использую приведенную ниже команду, но это неправильно.

cat aliases | awk '{printf "%20s = %s\n", $1, $0}'

Ответы [ 4 ]

3 голосов
/ 22 сентября 2011
cat aliases | awk '{$1=sprintf("%20s =",$1);print}'
1 голос
/ 22 сентября 2011
cat aliases | awk '{ printf("%20s =", $1); $1=""; printf("%s\n", $0) }'
0 голосов
/ 22 сентября 2011

Просто используйте оболочку:

while read line; do 
  set -- $line
  cmd=$1
  shift
  printf "%20s = %s\n" "$cmd" "$*"
done < filename
0 голосов
/ 22 сентября 2011

другой способ:

sed 's/ /=/1' yourFile|awk -F= '{printf ("%20s = %s\n",$1,$2)}'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...