回答
你可以使用sed
(這是不特定於GNU SED):
sed -r 's/[ ]{2,}//g' filename
或(無-r
):
sed 's/[ ]\{2,\}//g' filename
您的輸入,這將產生:
200 0 0100300400 10
沒有必要將空間放在字符列表中,因爲沒有什麼特別的地方。您應該聲明它也是GNU特有的,這樣海報不會浪費時間嘗試調試它,例如他在Solaris上。 –
一個更基本的正則表達式應該是's/* // g' - 兩個空格,後跟零個或多個空格,或者使用通用空格:'s/[[:space:]] [[:space:]] [[ :space:]] * // g' –
@EdMorton(1)這不是GNU-sed特有的,並且可以與其他sed變體一起使用。 (2)我明白一個空間並不是特別的,但我發現在匹配多個空格時可以使用量詞。 – devnull
sed 's/ \+//g' INPUTFILE
就可以了(如果你有GNU SED)。
你應該說明它是GNU特有的。 –
短小而且完美。 :)乾杯。 –
這將工作與任何sed的,不只是GNU的sed:
sed -e 's/ *//g'
張貼在這裏作爲參考,一個awk
解決方案:
$ echo '200 0 0 100 300 400 10' | awk '{gsub(/ +/,"")}1'
200 0 0100300400 10
由於awk使用EREs,gsub()可以是'gsub(/ + /,「」)''。 –
哎呀,你是對的,你保存了一個角色。謝謝@EdMorton。更新了答案。':)' –
這可能不是問題,但發佈的腳本也會刪除空白行。 ''{gsub(/ + /,「」)} 1''會更安全。當然,現在我們又失去了那些已保存的角色:-)。 –
純猛砸。在腳本中,你可以使用參數替代:
str="200 0 0 100 300 400 10"
shopt -s extglob
str=${str// +()/}
echo "$str"
200 0 0100300400 10
取代${str// +()/}
刪除所有的空格,後面至少一個空白。
- 1. 用一個文本文件替換兩個或多個空格;
- 2. 如何用Perl中的單個空格替換多個空格?
- 3. 替換句子中的多個空格
- 4. 用單個空格替換字符串中的多空格 - Python
- 5. 替換一個或多個空格,只需一個新行。
- 6. 用一個空格替換一個或多個空格和/或製表符的每個字符串
- 7. Powershell用0空格替換2個空格跨目錄
- 8. 用單個空白替換單詞之間的多個空格
- 9. 用linux中的選項卡替換三個或更多個連續的空格
- 10. 用文件中的空格替換\
- 11. 將兩個或多個空格替換爲&nbsp,
- 12. 用單個空格替換字符串中的多個字符
- 13. 用vb.net中的空格替換多個製表符空間
- 14. 用C中的正則表達式替換兩個或多個空格#
- 15. Visual Studio RegEx替換 - 2個或更多?
- 16. 刪除Javascript中的所有多個空格,並用單個空格替換
- 17. 如何用sql中的單個空格替換多個空格和回車符
- 18. 用Bash腳本替換文件中的第一個空格
- 19. 用單個空格替換文件中的不同數量的空格
- 20. 從文本文件中刪除換行符前的一個或多個空格
- 21. 多個替換或替換文本在Excel中使用表
- 22. 用換行符替換多個空格,但留下單個空格
- 23. CString替換多個空格MFC
- 24. 用NULL替換空白單元格?
- 25. 如何用PowerShell替換CSV或html文件中的多個值?
- 26. 用單個空格替換空白
- 27. 用許多文件中的標籤空格替換逗號
- 28. 分裂用空格或多個空格
- 29. 如何將多個空格替換爲字符串(java)中的單個空格?
- 30. Linux - 替換文件名中的空格
'用NULL替換 - 你的意思是'刪除'? –
是的,我的意思是刪除。得到了解決方案埃德。 乾杯。 –