2

私は例を持っています:

pic@pic:~$ echo ",article{gjn2010jucs, Author =   {Grzegorz J. Nalepa}, " | awk '{gsub(/[^,],.*/,""); print }' 
,article{gjn2010juc 
pic@pic:~$ 

結果を得るために正規表現を改善する方法:

,article{gjn2010jucs
4

2 に答える 2

1

正規表現を改善したい場合: キャプチャ グループを使用する必要があります。これらはsub()またはで使用できる機能ではありませんgsub()。を使用する必要がありますgensub()。文字列操作関数の詳細については、こちらを参照してください。

私はgensub()このように使用します:

awk '{ print gensub(/(,[^,]+).*/,"\\1", "g") }'

テスト:

echo ",article{gjn2010jucs, Author =   {Grzegorz J. Nalepa}, " | awk '{ print gensub(/(,[^,]+).*/,"\\1", "g") }'

結果:

,article{gjn2010jucs
于 2012-10-02T23:24:38.230 に答える
1

または、破棄するものを見つける代わりに、保持するものを見つけます: 最初のコンマとそれに続くすべての非コンマ文字を保持します:

gawk 'match($0, /^,[^,]+/, ary) {print ary[0]}'

モークの更新:

mawk 'match($0, /^,[^,]+/) {print substr($0, RSTART, RLENGTH)}'
于 2012-10-03T00:27:59.680 に答える