重複した空白(複数)を見つけて1つの空白に置き換えたいと思います。私は試した:
sed -e 's/ []+/ /g' myfile.txt > myfile2.txt
これにより、空のファイルが生成されます。なぜ?私の目標を達成する方法は?
答え1
コマンドが無効です。sed: -e expression #1, char 10: unterminated 's' command
標準出力が生成されないため、空のファイルがある可能性があります。
努力するsed -e 's/ \+/ /g' myfile.txt > myfile2.txt
答え2
標準からsed
1つ以上のSPC文字を検索するには、構文は次のとおりです。
sed 's/ \{1,\}/ /g'
または
sed 's/ */ /g'
(星の前にスペースが2つあります。)またはもっと読みやすくするには、次の手順を実行します。
sed 's/[ ][ ]*/ /g'
-E
(拡張正規表現の場合)標準に追加された場合(これは次のメジャーPOSIXバージョンで発生する必要があり、多くの実装ですでにサポートされている)、次のこともできます。
sed -E 's/ +/ /g'
一部の実装では、基本正規表現(除く)をエイリアスとして理解することもsed
できます。\+
-E
\{1,\}
ただし、ここでは直接使用できますtr
。
tr -s ' ' < file.in > file.out
到着Sスペースをいっぱいにしてください。