で二重の空白を折りたたむ:私は必要なもの単語間の空白を削除し、私は次のテキスト持っバッシュ
T h i s i s s o m e t e x t .
を以下の通りです:
This is some text.
構造規則的なパターンに従いますので、私は」 dシェルコマンドを使って必要な変更を行う方法があると仮定します(ある種のスクリプトでも可能です)。私はシェルツールに堪能ではないので、うまくいくものを考え出すことができませんでした。
ありがとうございます! sedので
で二重の空白を折りたたむ:私は必要なもの単語間の空白を削除し、私は次のテキスト持っバッシュ
T h i s i s s o m e t e x t .
を以下の通りです:
This is some text.
構造規則的なパターンに従いますので、私は」 dシェルコマンドを使って必要な変更を行う方法があると仮定します(ある種のスクリプトでも可能です)。私はシェルツールに堪能ではないので、うまくいくものを考え出すことができませんでした。
ありがとうございます! sedので
あなたが行うことができます。
$ echo "$a"
T h i s i s s o m e t e x t .
$ sed 's/\(.\) /\1/g' <<< "$a"
This is some text.
[このデモを見る](http://ideone.com/OsBMS2)コメントは複数のスペースを含む文字列を入力するとかなり悪いものです。 – anubhava
@anubhava:3つ以上の連続したスペースがある場合、OPが何を起こそうとしているのか分かりません。 – user000001
sed
またはperl
のバリアントは、これを行うための簡単な方法です。ここで
は、一例としてawk
変種です:
$ awk -F'[ ]' '{for(i=1;i<=NF;i++){if ($i=="") $i=" "; printf "%s", $i}}' <<< 'T h i s i s s o m e t e x t .'
This is some text.
$ awk -F'[ ]' '{for(i=1;i<=NF;i++){if ($i=="") $i=" "}}1' OFS= <<< 'T h i s i s s o m e t e x t .'
This is some text.
あなたはこのヌーを使用することができるが、ワード境界に基づいているのsed:
s='T h i s i s s o m e t e x t .'
sed -E 's/\b(+\B|)//g' <<< "$s"
出力:
This is some text.
をこれを文字列で保存していますか?すなわち、i/pファイルの文字列またはコンテンツ – Inian
@OP:[このデモをチェックできますか](http://ideone.com/OsBMS2)、これが適切な出力であるかどうかを確認してください。 – anubhava