我有这样一个grep:
iarr=`grep -Poh '.*INPUT' file.txt`
oarr=`grep -Poh '.*OUTPUT' file.txt`
使用file.txt的这个内容:
INPUT hello.txt
OUTPUT stack.txt
INPUT stack.txt
OUTPUT hello.txt
INPUT overflow.txt
OUTPUT overflow.txt
OUTPUT byebye.txt
INPUT byebye.txt
INPUT nick.txt
OUTPUT jesus.txt
Te输出为:
iarr
INPUT hello.txt
INPUT stack.txt
INPUT overflow.txt
INPUT byebye.txt
INPUT nick.txt
oarr
OUTPUT stack.txt
OUTPUT hello.txt
OUTPUT overflow.txt
OUTPUT byebye.txt
OUTPUT jesus.txt
好吧,但我想知道输入需要哪些文件名,输出是什么,我的意思是:
根据这些条件,结果如下:
iarr
INPUT hello.txt
INPUT overflow.txt
INPUT nick.txt
oarr
OUTPUT stack.txt
OUTPUT byebye.txt
OUTPUT jesus.txt
我正在尝试获得此结果,但我不知道如何在grep命令中存储正则表达式的特定匹配行...这是我想要解决的问题,你有另一个吗?这样做的想法? 可能是逐行阅读......
答案 0 :(得分:1)
如果我理解你的问题,你只需要第一次出现每个文件名。您可以使用awk实现此目的:
awk '!x[$2]++' file.txt
将给出
INPUT hello.txt
OUTPUT stack.txt
INPUT overflow.txt
OUTPUT byebye.txt
INPUT nick.txt
OUTPUT jesus.txt
您可以继续处理。