Bash
包含單詞 OR 的 Grep 行的長度在特定範圍內?
1598427@931 PDD 220624P00051000 ohlc=0,0,0,0 vol=0 oi=424 nbbo=69@2316/113@532 nbbo2=69@145/113@95 PDD 220617C00051000 ohlc=0,0,0,0 vol=0 oi=434 nbbo=530@1921/710@1496 nbbo2=530@31/710@115 PDD 220722P00051000 ohlc=0,0,0,0 vol=0 oi=15 nbbo=285@1436/405@1772 nbbo2=230@15/455@15 PDD 220708C00051000 ohlc=0,0,0,0 vol=0 oi=17 nbbo=785@864/935@894 nbbo2=785@15/935@15 PDD 220624C00051000 ohlc=0,0,0,0 vol=0 oi=392 nbbo=645@771/795@947 nbbo2=645@83/795@80 PDD 220729C00051000 ohlc=0,0,0,0 vol=0 oi=0 nbbo=870@902/1190@677 nbbo2=820@15/1195@20 PDD 220708P00051000 ohlc=0,0,0,0 vol=0 oi=32 nbbo=200@1413/320@2273 nbbo2=200@15/320@356 PDD 220722C00051000 ohlc=0,0,0,0 vol=0 oi=140 nbbo=795@1630/1175@1544 nbbo2=795@51/1175@21 PDD 220729P00051000 ohlc=0,0,0,0 vol=0 oi=11 nbbo=254@3/450@3 nbbo2=254@2/570@1 CSCO 220715C00090000 ohlc=0,0,0,0 vol=0 oi=739 nbbo=0@0/4@1056 nbbo2=0@0/4@121 CSCO 220617C00090000 ohlc=0,0,0,0 vol=0 oi=203 nbbo=0@0/1@2 nbbo2=0@0/0@0 CSCO 220617P00090000 ohlc=0,0,0,0 vol=0 oi=0 nbbo=4685@654/4730@1155 nbbo2=4685@33/4730@33 CSCO 240119P00090000 ohlc=0,0,0,0 vol=0 oi=0 nbbo=4695@202/4770@193 nbbo2=4695@75/4770@33
我有一個看起來像上面的文件。
我想找到所有包含 word
CSCO
或有長度的行<= 15
。我可以使用什麼命令來執行此操作?
grep -e CSCO -e '^.\{0,15\}$' filename
在這裡你給 grep 兩種模式尋找。第一個是“CSCO”:所以它會匹配任何行。第二個查找行首,然後是出現 0 到 15 次
^
的任何字元,然後是行尾。.``\{0,15\}``$
如果 CSCO 必須是一個完整的“單詞”而不是更大的單詞或模式的一部分,您可以使用
'\<CSCO\>'
or'\bCSCO\b'
或'[[:<:]]CSCO[[:>:]]'
取決於您的grep
實現(\<
最常\>
支持的),所有這些都是在轉換時匹配的單詞邊界運算符一個單詞字元(alnums 或下劃線)和一個非單詞字元(所有其他字元)。