1行の数字を削除するためのsedスクリプトを書く方法は?

1行の数字を削除するためのsedスクリプトを書く方法は?

サンプルファイル

a.b.gg3d 0000000001 0000000001 y
a.b.112a 0000000000 0000000001 y
a.b.gg3s 0000000001 0000000001 y
a.b.1111 0000000000 0000000001 m

上記の例に似た約3,000本の一意の行を含むファイルがあります。 sedを使用して各行から「xxxxxxxxx xxxxxxxxxx」数を削除したいと思います。上記の例を使用して、sedスクリプトに次の出力を生成させます。

a.b.gg3d y
a.b.112a y
a.b.gg3s y
a.b.1111 m

どうすればいいですか? sedに、「最初のスペースの後のすべての数字を削除し、最後の文字を保持します」と指示するコマンド文字列はありますか?

ベストアンサー1

この入力が与えられたら、最初のフィールドと最後のフィールドを維持したいと思います。 awkを使うのはとても簡単です。

awk '{print $1, $NF}' filename

sedを使用すると、スペースで区切られたすべての数字のみの単語が置き換えられます。

sed ':a; s/ [[:digit:]]\+ / /; ta'

おすすめ記事