Odpowiedzi:
„Usunąć wszystkie puste spacje” może oznaczać jedną z różnych rzeczy:
0x20
.\t
”\n
” i inneJeśli sed
z jakiegoś ukrytego powodu nie jest to wymagane, lepiej użyj odpowiedniego narzędzia do pracy.
Polecenie to tr
ma głównie zastosowanie w tłumaczeniu (stąd nazwa „tr”) listy znaków na listę innych znaków. Jako przypadek narożny może tłumaczyć na pustą listę znaków; Opcja -d
( --delete
) usuwa znaki pojawiające się na liście.
Lista znaków może wykorzystywać klasy znaków w [:...:]
składni.
tr -d ' ' < input.txt > no-spaces.txt
tr -d '[:blank:]' < input.txt > no-spaces.txt
tr -d '[:space:]' < input.txt > no-spaces.txt
sed
W przypadku sed [:...:]
składnia klas znaków musi być połączona ze składnią zestawów znaków w wyrażeniach regularnych [...]
, co powoduje nieco zamieszanie [[:...:]]
:
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
tr -d ' ' < input.txt > no-spaces.txt
.
tr
. (Widzisz to gdzieś indziej?)
Możesz użyć tego do usunięcia wszystkich białych znaków w file
:
sed -i "s/ //g" file
man sed | sed "s/ //g"
/
inną postacią, np .:sed "ss ssg"