簡體   English   中英

BASH - grep結果的換行符

[英]BASH - tr newlines of grep result

wget之后我有一個grep -o '100%'管道,所以我只通知wget完成了下載,屏幕上沒有無用的信息。 但每100%都印在一條新線上,我不喜歡這場洪水! 那么,有沒有一種方法來tr換行符為空格,通過管道trgrep 我得到的只是沒有結果,每次我都試過......

你最終會獲得輸出,但一次又一次。 這是由於緩沖。

GNU grep有一個--line-buffered來避免輸出緩沖。 tr輸入緩沖沒有明顯的方法將其關閉,所以你可以使用awk代替:

wget -r -l 1 http://stackoverflow.com/ 2>&1 |
    grep --line-buffered -o '100%' | awk '{printf("%s ", $0);}'
100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 

它正在緩沖,請參閱為什么在使用grep兩次時沒有顯示輸出? 只需使用awk:

$ wget -r -l 1 https://stackoverflow.com/ 2>&1 | awk 'match($0,/100%/){printf "%s ", substr($0,RSTART,RLENGTH)}'
100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100% 100%

或者可能更有用:

$ wget -r -l 1 https://stackoverflow.com/ 2>&1 | awk '/100%/{printf "."}'
...........

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM