子区切り記号を使用して最初の列を変更する

子区切り記号を使用して最初の列を変更する

テキストファイルがあるとしましょう。

aaa-123;bread;apple;banana
aaa-123;bread;apple;banana
aaa-123;bread;apple;banana
bbb-123;bread;apple;banana
bbb-1234;bread;app-le;banana
bbb-222;bread;apple;banana

最初の列のawkを介して-と。間の予想される結果を削除する必要があります。

aaa;bread;apple;banana
aaa;bread;apple;banana
aaa;bread;apple;banana
bbb;bread;apple;banana
bbb;bread;app-le;banana
bbb;bread;apple;banana

ベストアンサー1

これは、どのフィールドにsが含まれているか、最初のフィールドにsが含まれているかどうかに関係なく、すべての-Unixシステムのすべてのシェルですべてのawkで機能します。

$ awk 'BEGIN{FS=OFS=";"} {sub(/-.*/,"",$1)} 1' file
aaa;bread;apple;banana
aaa;bread;apple;banana
aaa;bread;apple;banana
bbb;bread;apple;banana
bbb;bread;app-le;banana
bbb;bread;apple;banana

おすすめ記事