2009-06-09 49 views

回答

206

使用cut。例如。剝去前4個字符每行(即啓動5號字符):

tail -f logfile | grep org.springframework | cut -c 5- 
+0

您是否知道管道不工作的原因?當我基本上運行該命令,'切'不打印結果到標準輸出...如果我只是運行'尾-f日誌文件| cut -c 5'我可以看到結果...問題必須與grep 我正在使用cygwin FYI 謝謝 – les2 2009-06-09 19:15:25

+0

如果不添加最後一個管道並切斷,會發生什麼情況?基本上,如果你刪除線的最後部分? – LB40 2009-06-09 19:21:40

2
tail -f logfile | grep org.springframework | cut -c 900- 

會時,我管這一切通過grep的我沒有得到刪除第一個900個字符

cut使用900-

但是顯示第900字符到行的末尾什麼

+4

「切-c 1-900」不會「刪除第900個字符」 - - 它只會留下前900個字符。如果您想刪除前900個字符,請使用「cut -c 901-」 – iammichael 2009-06-09 19:08:04

+0

也是每行中的前900個字符,根據@ iammichael的回答 – 2009-06-09 19:09:28

30
sed 's/^.\{5\}//' logfile 

,你通過你想要的號碼更換5 ...它應該做的伎倆...

編輯 如果每行 sed 's/^.\{5\}//g' logfile

12

您可以使用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字符。

這將執行該操作以輸入文件的每行。

1

我覺得awk會,因爲它既能過濾器這個是最好的工具和過濾線進行必要的字符串處理函數:

tail -f logfile | awk '/org.springframework/ {print substr($0, 6)}' 

tail -f logfile | awk '/org.springframework/ && sub(/^.{5}/,"",$0)' 
0

下面是簡單的功能,在bash中測試。的功能1參數是字符串,第二個參數是被剝離

字符數function stringStripNCharsFromStart { echo ${1:$2:${#1}} }

用法: enter image description here

相關問題