Yanıtlar:
"Tüm boşlukları silmek" farklı şeylerden biri anlamına gelebilir:
0x20
.\t
" yatay sekme karakteri dahil tüm yatay alanı sil\n
" ve diğer satırlar dahil tüm boşlukları silEğer sed
bazı gizli nedenle bir gereklilik daha iyi, iş için doğru aracı kullanın.
Komut tr
, bir karakter listesini diğer karakterlerin listesine çevirmede (bu nedenle "tr" adıyla) ana kullanım alanına sahiptir. Bir köşe durumu olarak, boş karakter listesine çevrilebilir; Seçeneği -d
( --delete
) listede görünen karakterleri siler.
Karakter listesi, [:...:]
sözdizimindeki karakter sınıflarından yararlanabilir .
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 ile [:...:]
karakter sınıfları için sözdizimi, regexp'lere karakter kümeleri için sözdizimi ile kombine edilmesi gerekmektedir [...]
biraz kafa karıştırıcı sonuçlanan [[:...:]]
:
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
Şimdi üç çizgiyi düzelteceğim . (Başka bir yerde görüyor musunuz?)
Bunu, içindeki tüm boşlukları kaldırmak için kullanabilirsiniz file
:
sed -i "s/ //g" file
man sed | sed "s/ //g"
/
farklı bir karakterle değiştirebilirsiniz, örneğin:sed "ss ssg"