【发布时间】:2017-10-04 06:10:48
【问题描述】:
我正在尝试打印所有可以包含两次或多次相同单词的行
例如使用这个输入文件:
cat dog cat
dog cat deer
apple peanut banana apple
car bus train plane
car train car train
输出应该是
cat dog cat
apple peanut banana apple
car train car train.
我已经尝试过这段代码,它可以工作,但我认为必须有更短的方法。
awk '{ a=0;for(i=1;i<=NF;i++){for(j=i+1;j<=NF;j++){if($i==$j)a=1} } if( a==1 ) print $0}'
稍后我想找到所有这些重复的单词并删除所有重复的条目,除了第一次出现。
所以输入:
cat dog cat lion cat
dog cat deer
apple peanut banana apple
car bus train plane
car train car train
期望的输出:
cat dog lion
dog cat deer
apple peanut banana
car bus train plane
car train
【问题讨论】:
-
我正在寻找正则表达式解决方案,有什么问题?
-
regex 也用于其他语言,例如 perl 和 ruby,但我想在 awk、sed 和 grep 中坚持使用 regex,所以我放了这些标签。
-
祝你好运在
awk中找到答案,regex