Кто-либо знает, как использовать Sed для удаления всех пробелов в текстовом файле? Я приют, пытаясь использовать "d", удаляет команду, чтобы сделать так, но, может казаться, не понимает это
Можно использовать это для удаления всех пробелов в file
:
sed -i "s/ //g" file
Для "удаления всех пробелов" может означать одну из разных вещей:
0x20
. \t
" \n
" и другие , Если sed
это не требование по некоторой скрытой причине, лучше используйте правильный инструмент для задания.
команда tr
имеет основное использование в переводе (отсюда имя "TR") список символов к списку других символов. Как угловой случай, это может перевести в пустой список символов; опция -d
(--delete
) удалит символы, которые появляются в списке.
список символов может использовать классы символов в [:...:]
синтаксис.
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
С sed, [:...:]
синтаксис для классов символов должен быть объединен с синтаксисом для наборов символов в regexps, [...]
, приведении к несколько запутывающему [[:...:]]
:
sed 's/ //g' input.txt > no-spaces.txt
sed 's/[[:blank:]]//g' input.txt > no-spaces.txt
sed 's/[[:space:]]//g' input.txt > no-spaces.txt
возможно, слишком поздно, но sed использует регулярное выражение в качестве входных данных. '\s' - это выражение всех пробелов. Таким образом, sed s/'\s'//g
должен выполнить эту работу. ура