模式的所有行我有一個文件tmpFile
包含:刪除不匹配SED
wqf____32qwfe
123412
qqwef123414
12039421
...
在tmpFile
有隻有數字,可以包含任何字符,線條在其中,或線條。
我想保留只包含整數的行。 我該如何做到這一點?
模式的所有行我有一個文件tmpFile
包含:刪除不匹配SED
wqf____32qwfe
123412
qqwef123414
12039421
...
在tmpFile
有隻有數字,可以包含任何字符,線條在其中,或線條。
我想保留只包含整數的行。 我該如何做到這一點?
雖然你可以爲此使用SED的工作就是摹 lobally搜索[R egular Ë上的表達和P RINT結果如此猜測的發明是爲了做正是這個工作什麼工具?
要打印僅包含數字線,GNU的grep是:
grep -E '^[0-9]+$' file
或與任何的grep:
grep '^[0-9][0-9]*$' file
要打印包含非數字線:
grep '[^0-9]' file
打印不包含數字的行(包括空行):
grep -v '[0-9]' file
要打印不包含非數字線(包括空行):
grep -v '[^0-9]' file
可以禁止印刷圖案的空間,只打印匹配的數字圖案的線條,例如:
$ sed -n '/^[0-9]\+$/p' file
123412
12039421
sed '/^[0-9]\+$/!d' tmpFile
的!
反轉的邏輯。請注意,\+
不是符合POSIX的版本sed
(例如BSD或Mac OS X sed
)的基本功能的一部分。
sed '/^[0-9]\{1,\}$/!d' tmpFile
這會工作,尋找一個或多個數字。
還有其他方法可以達到相同的整體效果,特別是在這個有限的環境中。如果您需要將其作爲更大腳本的一部分來執行此操作,則這是您的要求的直接答案。
同樣可以通過重複圖案'/^[0-9] [0-9]被歸檔* $ /!d' – andlrc
是的,非常有趣,這似乎真的是我想要做的。 'grep -E'^ [0-9] + $'tmpFile'和'grep'^ [0-9] [0-9] * $'tmpFile'爲我想要做的工作!謝謝 – Simonlbc