我收到了一个大文件,其中有许多行具有相同的版本。以下是几行作为示例:
14 23456 12356 1234 15 1456 1245 123456 23456 chrysanthemums
12456 123456 34 1236 123456 1234 45 123456 whitings
14 356 124 6 12345 6 1245 malformations
12456 23456 2356 12345 12345 123456 6 furnishings
2345 16 345 126 345 126 3 12456 3 stoned
245 34 123456 123456 12 346 134 4 245 1245 146 6 gravitate
12456 34 34 356 12356 15 26 13 gastrointestinal
23456 1 234 3 5 12356 lawyer
123456 3456 123456 123456 16 123456 12356 12 46 12456 45 1346 tuba
2356 345 12345 4 4 1 6 gripped
123456 123456 123456 123456 35 12456 123456 123456 23 356 23456 25 replenishes
如你所见,它是数字1-6从小到大并用空格分隔的多种组合。最后有一句话。
我想使用 grep 命令来显示连续“单词”不共享任何字符的行。这可以适用于整行,因为最后一个单词无论如何都不会与数字共享任何字符。
应显示的行示例:
12456 3 4 12356 4 12356 4 12356 4 156 234 cool
不应显示的行的示例:
234 5 12456 13456 136 23456 2346 5 6 345 angry
(第二个单词是“5”,第三个单词也包含“5”...)
请帮助我!
我不知道该怎么做,但我希望使用正则表达式通过单个 grep 命令来完成。
grep -E '\b\w*(\w)\w*\b\s\b\w*\1\w*\b'
找到连续单词的下一个最佳重复字符。
使用
-v
参数从任何输入中删除匹配行:
cat input.txt | grep -vE '\b\w*(\w)\w*\b\s\b\w*\1\w*\b'