例如,我可能想:什麼是刪除行的前N個字符的unix命令?
tail -f logfile | grep org.springframework | <command to remove first N characters>
我在想,tr
可能有能力做到這一點,但我不知道。
例如,我可能想:什麼是刪除行的前N個字符的unix命令?
tail -f logfile | grep org.springframework | <command to remove first N characters>
我在想,tr
可能有能力做到這一點,但我不知道。
使用cut
。例如。剝去前4個字符每行(即啓動5號字符):
tail -f logfile | grep org.springframework | cut -c 5-
tail -f logfile | grep org.springframework | cut -c 900-
會時,我管這一切通過grep的我沒有得到刪除第一個900個字符
cut
使用900-
但是顯示第900字符到行的末尾什麼
「切-c 1-900」不會「刪除第900個字符」 - - 它只會留下前900個字符。如果您想刪除前900個字符,請使用「cut -c 901-」 – iammichael 2009-06-09 19:08:04
也是每行中的前900個字符,根據@ iammichael的回答 – 2009-06-09 19:09:28
sed 's/^.\{5\}//' logfile
,你通過你想要的號碼更換5 ...它應該做的伎倆...
編輯 如果每行 sed 's/^.\{5\}//g' logfile
您可以使用cut
:
cut -c N- file.txt > new_file.txt
個
-c:
字符
file.txt:
輸入文件
new_file.txt:
輸出文件選自N
N-:
字符結束要切割並輸出到新文件。
還可以有其他ARGS等:「N」,「N-M」,「-M」意思第n個字符,第n個至第m字符,第一分別至第m字符。
這將執行該操作以輸入文件的每行。
我覺得awk
會,因爲它既能過濾器這個是最好的工具和過濾線進行必要的字符串處理函數:
tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}'
或
tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)'
您是否知道管道不工作的原因?當我基本上運行該命令,'切'不打印結果到標準輸出...如果我只是運行'尾-f日誌文件| cut -c 5'我可以看到結果...問題必須與grep 我正在使用cygwin FYI 謝謝 – les2 2009-06-09 19:15:25
如果不添加最後一個管道並切斷,會發生什麼情況?基本上,如果你刪除線的最後部分? – LB40 2009-06-09 19:21:40