Решение awk
, вероятно, самое короткое и лаконичное и, возможно, более быстрое для больших файлов, но оболочка может сделать и это. Вот один из способов.
Использование bash.
while read -ra line; do
printf '%s %s\n' "${line[1]}" "${line[3]}"
done < file1 > file2
В Bash есть опция -a
для встроенного чтения, которая создает массив для каждой строки, а цикл while позаботится о строках в файле. Единственным преимуществом этого решения является то, что оно не использует никаких внешних команд из оболочки. Более портативное решение потребует много PE.