列から繰り返される文字を削除する方法は?

列から繰り返される文字を削除する方法は?

私はデータを持っています:

33305:1      0.045 
33406:1      0.432  
22294:1      0.345
28364:1      0.354

:1各行の最初の列から削除したいと思います。これにはgsubを使用する必要がありますか?

答え1

:1フィールド1のシングルを置き換えるには:

awk '{sub(":1", "", $1); print}' < input

フィールド 1 から最後の 2 文字を削除するには、次のようにします。

awk '{$1=substr($1, 1, length($1)-2); print}' < input

これ格子機能が置き換えられますすべて文字列のインスタンスです。例の入力には対応する文字列が1つしかないので、subを使用することはgsubを使用するのと同じです。

答え2

あなたの簡単な場合 -sed十分です:

sed 's/:1//' file

答え3

with サブテーマの小さなバリエーションawk-:フィールド区切り文字として使用され、1 0.045列 2 になります。これで主人公を削除するだけです。

$ awk -F':' '{sub(/^[[:digit:]]/," ",$2);print}' input.txt                  
33305        0.045 
33406        0.432  
22294        0.345
28364        0.354

関連情報