У Bash есть способ использовать структуру while IFS= read -r ; do . . . done < input.txt для печати точного содержимого файла, но одна из особенностей здесь заключается в том, что если вы опустите IFS=, ведущие пробелы не будут прочитаны. Таким образом, мы можем сделать следующее:
$ cat input.txt
Text
$ while read -r line; do printf "%s\n" "$line"; done < input.txt
Text
И чтобы заменить текст исходного файла, можно немного изменить команду:
$ cat input.txt
Text
$ while read -r line; do printf "%s\n" "$line"; done < input.txt > temp.txt ; mv temp.txt input.txt
$ cat input.txt
Text
Мы также можем используйте расширение параметра для удаления запятых
$ cat input.txt
Text, text,
$ while read -r line; do printf "%s\n" "${line//,}"; done < input.txt
Text text
tr -s" " также можно моделировать, слегка изменив printf
$ cat input.txt
Text, text,
$ while read -r line; do printf "%s " ${line//,};printf "\n"; done < input.txt
Text text