我想用一个空格替换多个空格。我习惯tr
这样做。但它也会用空格替换换行符。我该如何避免这种情况?
代码:
tr -s [:space:] ' '
输入:
He llo
Wor ld
how are you
所需输出:
He llo
Wor ld
how are you
我的输出:
He llo Wor ld how are you
答案1
:space:
匹配水平和垂直空格。使用:blank:
来仅匹配水平空格。
答案2
只需在末尾使用tr -s [:space:]
without将连续的空格压缩为一个。' '
或者您可以使用以下命令之一:
和tr命令:
tr -s ' ' < input.txt > output.txt
tr -s '[:blank:]' < input.txt > output.txt
tr -s \ < input.txt > output.txt
和sed命令:
sed 's/ */ /g' < input.txt > output.txt
sed 's/ \{1,\}/ /g' < input.txt > output.txt
sed -E 's/ +/ /g' < input.txt > output.txt
sed -E 's/[[:space:]]+/ /g' < input.txt > output.txt
和awk命令:
awk '{$1=$1}1' < input.txt > output.txt
awk '$1=$1""' < input.txt > output.txt