[英]BASH - tr newlines of grep result
在wget
之后我有一個grep -o '100%'
管道,所以我只通知wget
完成了下載,屏幕上沒有無用的信息。 但每100%
都印在一條新線上,我不喜歡這場洪水! 那么,有沒有一種方法來tr
換行符為空格,通過管道tr
后grep
? 我得到的只是沒有結果,每次我都試過......
你最終會獲得輸出,但一次又一次。 這是由於緩沖。
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.