1

sedに問題があります。パターンだけを抽出する正しい方法は何ですか?
たとえば、次のリターンはworld、私はそれがちょうど返すことを期待していますw

echo "hello world" | sed -n 's|hello \(w\)|\1|p'

4

3 に答える 3

3

この方法を使用する方がよいでしょう。

echo "hello world" | sed -r's /.+(w).*/\1/'

これにより、w文字のみが抽出されます。-rオプションは拡張正規表現です。したがって、エスケープ"\"特殊文字は使用しません。
。任意の1文字に一致します。*アスタリスクは0回以上の出現に一致します。+ plusは、1つ以上のオカレンスに一致します。()これは、これを使用したグループ化メソッドであり、参照を取り戻すことができます。sはメソッドの代わりに使用されます。

于 2012-09-29T11:59:18.757 に答える
2

次のテキストを一致させて置き換える(削除する)のを忘れましたw

echo "hello world" | sed -n 's|hello \(w\).*|\1|p'
于 2012-09-29T11:15:38.780 に答える
1

文字列のいずれかに一致する場合はsedコマンド、最初の文字の2番目の単語のみに一致する場合

sed's /([az]。*)([az])。* / \2/'​​入力ファイル

于 2012-09-29T12:50:41.680 に答える