テキストファイルがあるとしましょう。
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