LoginSignup
5
7

More than 5 years have passed since last update.

[awk] 特定の文字列以降を削除する

Last updated at Posted at 2015-10-15

データ例

1 yamada_taro
2 kimura_hanako
3 takahashi_jiro
4 sato_momoko
5 tanaka_akane

上記のように、番号と名前からなるデータがあるとします。また、名前は姓と名の間に"_"が入った形式となっています。

こういうデータから、awkを使って、"_"以降の名を削除することを考えましょう。なお、このデータは"test.dat"というファイルに保存されているとします。

コード例

正規表現を使った文字列置換ができるsub関数を使います。

awk '{
    sub("_.*", "");
    print $0;
}' test.dat

脚注

はじめgsub関数を使っていたのですが、今回のデータ例ではsub関数で事足ります。なお、sub関数とgsub関数の違いについては軽くまとめました。
[awk] sub関数とgsub関数の違い

出力

1 yamada
2 kimura
3 takahashi
4 sato
5 tanaka

5
7
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
7