タブで区切られた2つの列を持つ次のファイルがあります。
ENSG00000242268.2 0.07563
ENSG00000270112.3 0.09976
ENSG00000167578.15 4.38608
ENSG00000273842.1 0.0
ENSG00000078237.5 4.08856
最初の列の末尾から数値拡張子を削除したいので、出力は次のようになります。
ENSG00000242268 0.07563
ENSG00000270112 0.09976
ENSG00000167578 4.38608
ENSG00000273842 0.0
ENSG00000078237 4.08856
単に最初の列の値のみを返し、sed 's/\..*$//'
フィールド区切り文字'.'
でawkを使用するとawk -F'.'
小数点があるため、2番目の列の値も削除されます。
同様の質問に対する答えはここにあります: 列から拡張子を削除する
まだ最初の列だけを削除することはできません。
ベストアンサー1
アッ解決策:
awk -F'\t' '{sub(/\..+$/,"",$1)}1' OFS='\t' file
-F'\t'
- フィールド区切り記号sub(/\..+$/,"",$1)
-.
最初のフィールドで次の文字をすぐに削除します。
出力:
ENSG00000242268 0.07563
ENSG00000270112 0.09976
ENSG00000167578 4.38608
ENSG00000273842 0.0
ENSG00000078237 4.08856
または簡単に使用してくださいsed方法:
sed 's/\.[0-9]*//' file