0

私は sed が初めてで、6 文字を超えるテキスト内の単語を削除する方法を見つけようとしています。

これまでのところ、これを思いつきましたが、空のファイルが得られるだけです。

sed -n '/.\{6\}/!d' input > output

入力

しかし、パイプラインでテキストをフィルター処理する sed の機能は、他のタイプのエディターと特に際立っています。

望ましい出力

しかし、それは他のタイプのテキストの sed です。

4

2 に答える 2

2

試しましたか

sed -r 's/\b\w{6,}\s?\b//g'

あなたの例:

$ echo "But it is sed's ability to filter text in a pipeline which particularly distinguishes it from other types of editors."  | sed -r 's/\b\w{6,}\s?\b//g'
But it is sed's to text in a which it from other types of .

編集: 上記は6 文字以上の単語を削除します。{6,}ニーズに合わせて上記の式を変更することもできます。

于 2013-10-06T14:40:48.553 に答える
1

これは、6 文字以上の単語を削除するトリックを実行するはずです - 単語を A ~ Z と a ~ z の文字で構成されていると定義する場合:

sed -e s'/[A-Za-z]\{7,\}//g'
于 2013-10-06T14:48:12.563 に答える