Вот ужасный способ, просто используя sed
для простого преобразования в столбец 2:
paste <(cut -f1 -d' ' file) <(cut -f2 -d' ' file | sed 's/text/TEXT/') <(cut -f3,4 -d' ' file)
Вывод
text1.1 TEXT1.2 text1.3 text1.4
text2.2 TEXT2.2 text2.3 text3.4
Это по существу склеив 3 файла рядом друг с другом, поэтому прочитайте его следующим образом:
paste file1 file2 file3
где file1
- это то, что вы получаете, когда вы вырезаете первое поле из входного файла, file2
- это то, что вы получаете когда вы вырезаете и преобразуете второе поле входного файла, и file3
- это то, что вы получаете, когда вырезаете поля 3 и 4 из входного файла.
Или просто bash
:
#!/bin/bash
while read c1 c2 rest ; do
c2trans=$(echo "$c2" | ./transformer)
echo "$c1 $c2trans $rest"
done < file