Відповіді:
"Видалити всі порожні пробіли" може означати одну з різних речей:
0x20.\t"\n" та іншіЯкщо sedце не вимога з якоїсь прихованої причини, краще скористайтеся правильним інструментом для роботи.
Команда trмає головне використання при перекладі (звідси назва "tr") списку символів до списку інших символів. Як кутовий випадок, він може перекласти у порожній список символів; Параметр -d( --delete) видалить символи, які відображаються у списку.
У списку символів можна використовувати класи символів у [:...:]синтаксисі.
tr -d ' ' < input.txt > no-spaces.txttr -d '[:blank:]' < input.txt > no-spaces.txttr -d '[:space:]' < input.txt > no-spaces.txtsedЗ sed [:...:]синтаксис для класів символів потрібно поєднувати з синтаксисом наборів символів у регулярних виразах [...], що призводить до дещо заплутаності [[:...:]]:
sed 's/ //g' input.txt > no-spaces.txtsed 's/[[:blank:]]//g' input.txt > no-spaces.txtsed 's/[[:space:]]//g' input.txt > no-spaces.txttr -d ' ' < input.txt > no-spaces.txt.
tr. (Чи бачите ви його деінде?)
Ви можете використовувати це для видалення всіх пробілів у file:
sed -i "s/ //g" file
man sed | sed "s/ //g"
/різними символами, наприклад:sed "ss ssg"