gpt4 book ai didi

sorting - 使用 grep 的结果对文件进行排序

转载 作者:行者123 更新时间:2023-12-05 02:46:40 25 4
gpt4 key购买 nike

我需要根据 grep 的结果对文件进行排序。示例:

cat cuts.txt | grep -P '(?<=[+]).*(?=[+])'
text +124+ text
text +034+ text
text +334+ text

如何根据 grep 找到的内容按新月顺序对行进行排序?

最佳答案

能否请您尝试使用显示的示例进行跟踪、编写和测试。考虑到您需要按第二个字段的递增值排序。由于 OP 提到 +digits+ 值可以出现在任何地方,因此这里有这个通用解决方案。

grep -P '(?<=[+]).*(?=[+])' Input_file |
awk '
match($0,/\+[0-9]+\+/){
print substr($0,RSTART,RLENGTH),$0
}
' | sort -k1.2 | cut -d' ' -f2-

输出如下。

text +034+ text
text +124+ text
text +334+ text

逻辑解释:awk< 中使用正则表达式将 grep 命令的输出传递给 awk 命令后 命令在行中查找 +digits+ 值并打印第一个匹配值,然后打印整行,通过这样做,sort 很容易找到原因,因为我们总是得到现在在第一个字段上排序。一旦我们对第一个字段进行排序,然后使用 cut 从第二个字段开始获取所有内容,为什么因为第一个字段是 awk 命令额外添加的字段,使 sort 更容易而不是实际输出中需要。

此外,我们不需要为此使用单独的 cat 命令,我们可以通过 grep 命令直接读取 Input_file。

关于sorting - 使用 grep 的结果对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65376479/

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