Предположим, что файл выглядит так:
a|b|c|d a|b|c|d ... a|b|c|d
Как мне переставить два поля, например:
c|b|a|d c|b|a|d ... c|b|a|d
Заранее спасибо!
Вот еще одно решение: поменяйте местами первое и третье поля, затем напечатайте:
awk -F '|' '{ temp=$1; $1=$3; $3=temp; print }' data.txt
Джерри был «прав», но есть гораздо более краткий способ сделать это
awk -F\| '{print $3FS$2FS$1FS$4}' input.csv
FS означает Разделитель поля. Вы можете изменить его на $ 3 "" $ 2 "" и т. Д., Если это проще
По крайней мере, если память служит, что-то в этом общем порядке должно работать:
BEGIN { FS="|"; } { printf("%s|%s|%s|%s\n", $3, $2, $1, $4); }