gpt4 book ai didi

awk - 是否有一种简洁的方法可以让 awk 打印除记录的第一个字段之外的所有内容?

转载 作者:行者123 更新时间:2023-12-04 14:27:20 25 4
gpt4 key购买 nike

我想将我最近的命令历史记录中的命令复制到一个文件中,但历史记录如下所示:

568  find . -name "*.txt" -mtime -1 -print -exec awk '$9 != "" && NR <= 10' {} \;
569 find . -name "*.txt" -mtime -1 -print -exec awk '$9 != "" && n < 10 {print; n++}' {} \;
570 history 10

我想去掉左边的数字。在 awk 中是否有一种简短的方法可以在不显式使用 $2 $3 $4 等输出除第一个字段之外的所有内容的情况下执行此操作?

最佳答案

如果你不介意前面的小空间

awk '{$1="";print}' file

否则,做一个额外的 sub/gsub 来摆脱它。另一种方法是使用for循环
awk '{for(i=2;i<=NF;i++) printf "%s " ,$i}' file

借用 pax 的解决方案,使用正则表达式的 awk 版本(谁说你需要 sed ):)
awk '{gsub(/^ *[^ ]* */,"")}1' file

关于awk - 是否有一种简洁的方法可以让 awk 打印除记录的第一个字段之外的所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1946593/

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