gpt4 book ai didi

linux - 如何用其他命令模拟egrep?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:59:41 26 4
gpt4 key购买 nike

我必须模拟 egrep 加上其他命令的一些选项,主要是 awk,但我不太了解如何在脚本中执行此操作。我知道 awk 可以识别正则表达式,但它可以替代 egrep 吗?

我真的不知道从哪里开始。

最佳答案

使用的示例文件:

[jaypal:~/Temp] cat file
This is FirstLine
SecondLineEEE
AAAblablabla
ForthLineEEE
FifthLine
LastLine

模拟:

1。 egrep -n

[jaypal:~/Temp] egrep -n 'LastLine' file
6:LastLine
[jaypal:~/Temp] awk /LastLine/'{print NR":"$0}' file
6:LastLine

2。 egrep -v

[jaypal:~/Temp] egrep -v 'LastLine' file
This is FirstLine
SecondLineEEE
AAAblablabla
ForthLineEEE
FifthLine
[jaypal:~/Temp] awk '/LastLine/{next}1' file
This is FirstLine
SecondLineEEE
AAAblablabla
ForthLineEEE
FifthLine

或(如丹尼斯在评论中指出的那样)

[jaypal:~/Temp] awk '!/LastLine/' file
This is FirstLine
SecondLineEEE
AAAblablabla
ForthLineEEE
FifthLine

3。 egrep -i(这仅适用于 gnu awk)

[jaypal:~/Temp] egrep -i 'lastline' file
LastLine
[jaypal:~/Temp] gawk -v IGNORECASE=1 '/lastline/' file
LastLine

4。 egrep -w(这只在 gnu awk 中)

[jaypal:~/Temp] egrep -w 'is' file
This is FirstLine
[jaypal:~/Temp] gawk '/\<is\>/' file
This is FirstLine

5。 egrep -f

[jaypal:~/Temp] cat file
This is FirstLine
SecondLineEEE
AAAblablabla
ForthLineEEE
FifthLine
LastLine

[jaypal:~/Temp] cat patternfile
LastLine
is

[jaypal:~/Temp] egrep -f patternfile file
This is FirstLine
LastLine

[jaypal:~/Temp] awk 'NR==FNR{a[$0]++;next} {for (x in a) if ($0~x) print $0}' patternfile file
This is FirstLine
LastLine

关于linux - 如何用其他命令模拟egrep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8820152/

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