我有奇怪的問題cut
我寫的劇本,還有我行:問題切口(UNIX)
... | cut -d" " -f3,4 >! out
切臨危這個數據(我用回聲檢查的話)
James James 033333333 0 0.00
但我收到out
空行,有人可以解釋爲什麼嗎?
我有奇怪的問題cut
我寫的劇本,還有我行:問題切口(UNIX)
... | cut -d" " -f3,4 >! out
切臨危這個數據(我用回聲檢查的話)
James James 033333333 0 0.00
但我收到out
空行,有人可以解釋爲什麼嗎?
你需要壓縮出來的空間序列,因此,電子一串空格被一個空格替換。該tr
command's -S(擠)選項是爲這個完美的:
$ ... | tr -s " " | cut -d" " -f3,4 >! out
Cut不會將多個空格看作單個空格,因此它與空格之間的「空白」相匹配。
當你離開>! out
部分時,你會得到空行嗎?也就是說,你的目標是正確的領域?
如果輸入字符串使用固定的間距,你可能需要使用cut -c 4-10,15-20 | tr -d ' '
提取字符組4-10和15-20,並從中刪除空格..
如果你想從一個文本文件中的字段,awk
幾乎總是回答:
... | awk '{print $3" "$4}'
例如:
$ echo 'James James 033333333 0 0.00' | cut -d" " -f3,4
$ echo 'James James 033333333 0 0.00' | awk '{print $3" "$4}'
033333333 0
... | grep -o "[^ ]*"
將提取領域,在每一個單獨的行。那麼你可能會頭/尾巴他們。不知道再次將它們放在同一行上。
當然是5個元素,但我不知道什麼是虛無,我該如何改變它我需要第4和第5場? – lego69 2010-06-02 11:07:26
你可以使用另一種形式的剪輯(請參閱我編輯過的文章),或者可以使用awk(請參閱下一個答案)。 – 2010-06-02 11:11:44