gpt4 book ai didi

bash - 获取 n 个最后记录并更改它们的特定列

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

我有这样的文件

1      2      "45554323"      p      b  
2 2 "34534567" f a
3 3 "76546787" u b
2 4 "56765435" f a
* a
0 b

我想从 END{} 部分的最后两条记录中删除 ab

结果:

1      2      "45554323"      p      b  
2 2 "34534567" f a
3 3 "76546787" u b
2 4 "56765435" f a
*
0

如何使用 awk 获取最后 n 行并更改它们的字段?

最佳答案

这是使用任何 awk 的一种方法:

awk -v count=$(wc -l <file.txt) 'NR > count - 2 { $2 = "" }1' file.txt

结果:

1      2      "45554323"      p      b  
2 2 "34534567" f a
3 3 "76546787" u b
2 4 "56765435" f a
*
0

或者要对除输入文件最后两行以外的所有记录作为 shell 脚本执行 awk 操作,请尝试 ./script.sh file.txtscript.sh 的内容:

command=$(awk -v count=$(wc -l <"$1") 'NR <= count - 2 { $2 = "" }1' "$1"
echo -e "$command"

结果:

1  "45554323" p b
2 "34534567" f a
3 "76546787" u b
2 "56765435" f a
* a
0 b

关于bash - 获取 n 个最后记录并更改它们的特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12882738/

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