1

この例では、正規表現の5番目のオカレンスを削除します。

printf "%s " $(seq 9) | gawk '{ print gensub(/[0-9]/,"","5") }'
1 2 3 4  6 7 8 9 

この例では、正規表現の6番目のインスタンスを削除します。

printf "%s " $(seq 9) | gawk '{ print gensub(/[0-9]/,"","6") }'
1 2 3 4 5  7 8 9 

上記の例を1つに保存することは可能ですか?試しましたが、機能しません。

printf "%s " $(seq 9) | gawk '{ print gensub(/[0-9]/,"","5|6") }'
 2 3 4 5 6 7 8 9 

印刷したい:

1 2 3 4    7 8 9
4

1 に答える 1

2

ドキュメントによると、私が考えることができる方法の1つ:

printf "%s " $(seq 9) | gawk 'END{ print gensub(/[0-9]/,"","5",gensub(/[0-9]/,"","5")) }'

そして別の方法(あなたの非常に具体的な入力で):

printf "%s " $(seq 9) | gawk 'END { print gensub(/[0-9] [0-9]/,"","3") }'

ターゲット文字列ターゲットで、正規表現regexpに一致するものを検索します。'g'または'G'(「グローバル」の略)で始まる文字列が どのようになっている場合は、正規表現のすべての一致を置換に置き換えます。それ以外の場合、どのように正規表現のどの一致を置き換えるかを示す数値として扱われます。ターゲットが指定されていない場合は、$0を使用します。関数の結果として変更された文字列を返し、元のターゲット文字列は変更されません。

于 2012-12-16T13:03:13.257 に答える