first file of information page
name/joe/salary1 50 10 2
name/don/miles2
20 4 3
name/sam/lb3 0 200 50
可以有一個人請告訴我,我怎麼可以刪除所有詞語的上述文件,所以我的輸出如下所示如何在UNIX中從文件中刪除單詞?
50 10 2
20 4 3
0 200 50
first file of information page
name/joe/salary1 50 10 2
name/don/miles2
20 4 3
name/sam/lb3 0 200 50
可以有一個人請告訴我,我怎麼可以刪除所有詞語的上述文件,所以我的輸出如下所示如何在UNIX中從文件中刪除單詞?
50 10 2
20 4 3
0 200 50
改爲使用awk。下面的代碼表示要遍歷每個字段,檢查它是否是一個整數。如果是,將它們打印出來。不需要複雜的正則表達式。
$ awk '{for(i=1;i<=NF;i++) if($i+0==$i) {printf $i" "} print ""}' file
50 10 2
20 4 3
0 200 50
看起來要保留只有數字和空間。如果是的話,你可以這樣做:
sed 's/[^0-9 ]//g' inputFile
編輯:在需求的變化,如果一個數字被發現與一個字母,它應作爲單詞的一部分進行處理。
這Perl腳本做的:
perl -ne 's/(?:\d*[a-z\/]+\d*)*//g;print' input
這不'salary1','miles2'或'lb3'其中包含數字 – mouviciel 2010-10-13 07:19:37
非常感謝你的快速反應工作。你的繩子完美地工作,但如果這些單詞也以數字結尾,會怎樣呢? (如上所述)。那麼我的最終文件也會包含那些1 2 3。 – 2010-10-13 07:20:50
sed -e "s/[a-zA-Z/]/ /g" file
會做,雖然我很喜歡codaddict的方式更多,如果你想保護者號和空白。這種方法可以去除所有字母和'/'符號,並用空格替換它們。
如果您想修改文件,請通過-i
開關。該命令將輸出文件的外觀。
非常感謝您的快速回復。你的繩子完美地工作,但如果這些單詞也以數字結尾,會怎樣呢? (如上所述)。那麼我的最終文件也會包含那些1 2 3。 – 2010-10-13 07:23:47
如果你的文件有這樣的結構,我建議首先篩選出的第一行,然後從行開始的所有字符,直到達到第一個空間:
sed -ni '2,$s/^[^ ]*//p' file
非常感謝您的所有代碼信息。 – 2010-10-13 07:37:46
每行刪除一切直到第一個空格字符(還刪除前導空格):
sed 's/\S*\s*//' file
感謝您的所有代碼信息。他們都很好。 – 2010-10-13 07:38:41
非常感謝,它工作得很好。 – 2010-10-13 07:36:53