Я пытаюсь изменить файл с разделителями табуляции, заменив значение 2 столбцов, разделенных ":", если в одном столбце есть нулевое значение:
Начать с этого файла:
id1 id2 pos1 pos2
749 2847443 21 13517135
862 2821796 21 13571669
997 21 13636494
1095 2821826 21 13661335
1131 21 13678797
Я хотел бы изменить столбец 2, чтобы получить следующее:
id1 id2 pos1 pos2
749 2847443 21 13517135
862 2821796 21 13571669
997 21:13636494 21 13636494
1095 2821826 21 13661335
1131 21:13678797 21 13678797
Проблема также заключается в том, что отсутствует пробел (""), указывающий нулевое значение.На данный момент я даже не смог заменить значение столбца 2 на столбец 3, когда оно пустое ...
Я пытался использовать sed:
sed -e 's/\t\t/\t$3\t/g' input.txt > output
, который работает, но этопросто подставляю текст '$ 3', и я не могу найти, как подставить вместо него значения $ 3: $ 4.
Я также пробовал awk:
awk 'BEGIN {
IFS = OFS = "\t"
}
{
for (column = 2; column <= NF; ++column) {
if ($column == "") {
$column = $3
}
}
print
}
'
input.txt > output
Но это тоже не работает (на самом деле ничего не делает, ни используя "", ни "...)
Можетпожалуйста, помогите мне?Спасибо.