一部の行の特定の列に一部の値が欠落しているため、受信したテキストファイルを編集できません。たとえば、ファイルは(ほとんど)次のようになります。
ID10 dad prbM ATGD
ID11 mom prbF CDSF
ID12 mom CGDS
ID13 dad prbF FSDD
ID14 mom FDSF
ご覧のとおり、時にはprb
すべてのアイテムが利用できない場合があります。アイテムが存在しないときに2つのタブが分離されていることがわかりました。タブ間に文字列を挿入する方法はありますか?たとえば、次のようになります。
ID10 dad prbM ATGD
ID11 mom prbF CDSF
ID12 mom none CGDS
ID13 dad prbF FSDD
ID14 mom none FDSF
答え1
awk
フィールドが実際にタブで区切られているとします。
awk -F '\t' -v OFS='\t' '$3 == ""{$3 = "none"};1' input.txt
これ:
- 入力フィールド区切り記号を単一のタブに設定(
-F '\t'
) - 出力フィールド区切り記号をタブ(
-v OFS='\t'
)に設定 - 3番目のフィールドが空であることを確認し
$3 == ""
()、空の場合は文字列に設定します。"none"
- そして常にline(
1
)を印刷してください。