受け取ったテキスト ファイルの編集で、一部の行の特定の列に値が欠落していたために問題が発生しました。たとえば、ファイルは次のようになります (大体)。
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"
- そして、常に行 (
1
) を出力します。