我試圖使用Bourne shell腳本里面grep來查找在文本文件中的特定模式使用grep來查找特定模式在一條線上
的風格是:word1 word2 word3
我想打印的一切那不是那種風格。到目前爲止,我用
grep -e '[[:space:]]\{2,\}' somefile
找到的話之間超過2米空的空間,但我無法弄清楚如何讓這個每行限3個字的保留。
我的另一種方法是計算每行有多少單詞,如果超過3則打印該行。或者在第三個單詞的末尾檢查一個空格,但我不確定如何格式化。
我試圖使用Bourne shell腳本里面grep來查找在文本文件中的特定模式使用grep來查找特定模式在一條線上
的風格是:word1 word2 word3
我想打印的一切那不是那種風格。到目前爲止,我用
grep -e '[[:space:]]\{2,\}' somefile
找到的話之間超過2米空的空間,但我無法弄清楚如何讓這個每行限3個字的保留。
我的另一種方法是計算每行有多少單詞,如果超過3則打印該行。或者在第三個單詞的末尾檢查一個空格,但我不確定如何格式化。
我不知道如果這是你想要的,但在這裏:
]$ cat input one one two one two three one two three four ]$ grep -v -e "^[^[:space:]]\+ [^[:space:]]\+ [^[:space:]]\+$" input one one two one two three four
我們匹配:
[^[:space:]]\+
^...$
-v
選項嘿,這個作品完美!我怎麼才能讓輸出在單獨行中出現而不是一次性出現?我在bourne shell腳本中使用echo – thunderfox
我不確定我是否理解。你在問怎麼讓'echo'打印出多行? – danadam
沒關係,我用\ n的printf,但是謝謝你:D – thunderfox
使用-v選項。 – Ingo
grep的目的是找到包含特定模式的行。也許試着去思考下一個問題的標題? – tripleee
迂腐的筆記:實際上不太可能使用Bourne shell,而是一些名爲'sh'的POSIX兼容shell,它具有比原始Bourne shell更多的功能。 – chepner