Im AWKを完全に新しくしました。私は、タブ区切りのファイル(以下のばかげた例では$ 1から)のスペースの後ろからすべてを削除しようとしています。あるいは、最初のスペースの前のすべてをつかんで、awkの変数に入れます。だから私は' 0000'
($ 1の最初のスペースの後に任意の長さである可能性があり、唯一のルールがあるすべてのもの)を削除し、abc
である$ 1を終わるにはどうすればよいawkパターン:フィールド内のスペース(含む)の後ろのすべてを削除してください
abc 0000 12sometext stuff
のようなラインを持っています。サブ関数はAWKにはありませんが、何とか正規表現を使用できますか?
abc
の結果を変数に代入する必要がある場合は、AWKの関数分割の配列を使用するのは不合理なようですが、別の方法はありませんか?
awk -F'\t' '{n = split($1, array, " "); result = array[1]; print result}' file.txt
WRT 'サブのような機能がAWK'ではない - もちろんのawkは、サブ()関数があります。 Arnold Robbins著、Effective Awk Programming、第4版を入手してください。 –
私は見る!私は 'awk -F '\ t' '{name = gensub(/。+ /、" "、$ 1)に沿って何かを求めていました。 print name} 'file.txt'私は、この関数が戻り値を持つとは認識しません。 – user3375672
数多くの方法があります。 $ 0を 'abc 0000'とすると、' var = substr($ 0,1,3) '、' var = substr($ 0,1、index($ 0、 "")-1) '、' ' $、$、$、$、$、$、$、$、$、$、$、$、$、$、$、$ 1) sub(/。* /、 ""、var) '、' split($ 0、t、/ /); var = t [1] 'など、など.... –