使用 printf awk 函数输出第 n 个参数

发布于 2024-12-05 17:01:57 字数 362 浏览 0 评论 0原文

给定以下文件的内容:

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}'

Given the following file's content:

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

how i can to print something like:

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

Currently I'am using the below command, but it's wrong.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

顾忌 2024-12-12 17:01:57
cat aliases | awk '{$1=sprintf("%20s =",$1);print}'
cat aliases | awk '{$1=sprintf("%20s =",$1);print}'
我很坚强 2024-12-12 17:01:57
cat aliases | awk '{ printf("%20s =", $1); $1=""; printf("%s\n", $0) }'
cat aliases | awk '{ printf("%20s =", $1); $1=""; printf("%s\n", $0) }'
简单 2024-12-12 17:01:57

另一种方式:

sed 's/ /=/1' yourFile|awk -F= '{printf ("%20s = %s\n",$1,$2)}'

another way:

sed 's/ /=/1' yourFile|awk -F= '{printf ("%20s = %s\n",$1,$2)}'
神经暖 2024-12-12 17:01:57

只需使用外壳:

while read line; do 
  set -- $line
  cmd=$1
  shift
  printf "%20s = %s\n" "$cmd" "$*"
done < filename

Just use the shell:

while read line; do 
  set -- $line
  cmd=$1
  shift
  printf "%20s = %s\n" "$cmd" "$*"
done < filename
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文