gpt4 book ai didi

bash - 如何使用awk打印一系列单词?

转载 作者:行者123 更新时间:2023-12-03 00:35:30 25 4
gpt4 key购买 nike

我知道 awk 可用于仅打印输出中的某些单词。例如

dpkg -l|awk '{print $2}'

将从 dpkg -l 的输出中打印第二个单词。

我想要做的是,打印给定单词后的每个单词。我的命令如下所示

awk '{printf "%-40s %s\n", $1, $n}'

我不想打印带有 $n$0 的所有单词,而是打印后面的每个单词,例如第 5 个字符。

我该怎么做?

编辑:我的完整命令是

bind -P|grep "can be found"|sort|awk '{printf "%-40s %s\n", $1, $n}'

这给出了类似的输出

abort                                    abort can be found on "\C-g", "\C-x\C-g", "\e\C-g".
accept-line accept-line can be found on "\C-j", "\C-m".
backward-char backward-char can be found on "\C-b", "\eOD", "\e[D".
backward-delete-char backward-delete-char can be found on "\C-h", "\C-?".

character-search-backward character-search-backward can be found on "\e\C-]".
character-search character-search can be found on "\C-]".
clear-screen clear-screen can be found on "\C-l".

还有更多行。“abort can be find in”和类似的行是无关紧要的,我不想要它们,但我想要这 5 个字符之后的所有内容。

所以输出应该是这样的

abort                                    "\C-g", "\C-x\C-g", "\e\C-g".
accept-line "\C-j", "\C-m".
backward-char "\C-b", "\eOD", "\e[D".
backward-delete-char "\C-h", "\C-?".

如何使用 awk 或任何其他命令来做到这一点?我需要保留柱状输出。

最佳答案

尝试以下:

 many commands | awk '{for(i=6;i<=NF;i++){printf "%s\n", $i}}'

将打印从字段 6 开始的所有内容,如果您不希望使用换行符分隔每个单词,请使用以下内容:

many commands | awk '{for(i=6;i<=NF;i++){printf "%s ", $i}}'

编辑:

对于完整的问题,请使用以下内容:

 bind -P|grep "can be found"|sort | awk '{printf "%-40s", $1} {for(i=6;i<=NF;i++){printf "%s ", $i}{printf"\n"}}'

给出输出:

abort                                   "\C-g", "\C-x\C-g", "\e\C-g".
accept-line "\C-j", "\C-m".
backward-char "\C-b", "\eOD", "\e[D".
backward-delete-char "\C-h", "\C-?".
backward-kill-line "\C-x\C-?".
etc...

关于bash - 如何使用awk打印一系列单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22929600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com