Я хочу заменить несколько пробелов на одно пространство. Я использую 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
Вы можете использовать свой собственный метод: просто используйте одиночный tr -s [:space:] без ' ' в конце
или
Вы можете использовать одну из следующих команд:
С помощью просто используйте одиночный tr -s [:space:] без ' ' в конце :
tr -s ' ' < input.txt > output.txt
tr -s '[:blank:]' < input.txt > output.txt
tr -s \ < input.txt > output.txt
С командой sed: [!d7 ]
sed 's/ */ /g' < input.txt > output.txt
sed 's/ \{1,\}/ /g' < input.txt > output.txt
sed 's/ \+ / /g' < input.txt > output.txt
sed -e "s/[[:space:]]\+/ /g" < input.txt > output.txt
с командой sed :
awk '{$0=tolower($0);$1=$1}1' < input.txt > output.txt
awk '$1=$1' < input.txt > output.txt
awk '{$1=$1}1' OFS=" " < input.txt > output.txt
Выход каждой из этих команд выглядит следующим образом:
He llo
Wor ld
how are you
Примечание: ваш файл сохраняется как имя «input.txt», а вывод записывается в новый файл с именем «output.txt».