次の内容を含む入力ファイルがあります。
chr1 12227 12612
chr1_ett 12721 13220
chr1 14829 14969
chr2 15038 15795
chr2_tdr 15947 16606
chr1 16765 16857
chr1 17055 17232
chr1 17368 17605
chr3 17742 17914
chr3_urr 18061 18267
"_"
最初の列に(下線)がある行を削除したいと思います。したがって、基本的にchr1、chr2、chr3のみが維持され、chr1_chr2_chr3_などの染色体はchr1からchr22まで維持されず、chrX、chrY、chrMも維持される。
私は何をすべきですか?
ありがとう
ベストアンサー1
努力する
awk '$1 !~ /_/' input_file.txt > output.txt
$1
(最初の列)に含まれていないすべての行が選択されます。_
またはGlenn Jackmanが提案したように
awk '! index($1,"_") ' input_file.txt > output.txt
別の方法は
sed -i -e '/^chr[0-9]*_/d' file.txt
これにより、同じ行が削除されます。 (行が正確に始まる場合chr
)