2015-07-22 3 views
0

Я ищу решение для изменения положения столбца в linux. В моем конкретном случае от 1-й позиции до последней позиции.изменить положение столбца в текстовом файле linux

qty | sender | recipient | some email subject 

sender | recipient | some email subject | qty 

Если у меня есть файл со следующим содержанием:

4 | one | two | the first subject 
5 | one | four | other interesting subject 

Я хотел бы иметь следующий вывод:

one | two | the first subject | 4 
one | four | other interesting subject | 5 

разграничителя "|". Не важно, есть ли у меня «|» в начале или в конце каждого ряда.

Спасибо!

ответ

1

Такого рода вещи это классическая работа для СЭД:

sed 's/\(^[^|]*\)|\(.*$\)/\2 | \1/' yourFile.txt >newFile.txt 

Чтобы сохранить изменения непосредственно в том же файле:

sed -i 's/\(^[^|]*\)|\(.*$\)/\2 | \1/' yourFile.txt 
  • ^[^ |] * -> для начала строки до первой вертикальной полосы.
  • . * $ -> любые оставшиеся символы до конца строки.
  • \ (\) -> Это, чтобы сохранить эти детали и восстановить позже с помощью \ {number}
  • \ 2 | \ 1 -> Восстановить сохраненную часть с новым порядком.

Чтобы узнать больше о sed here.

+0

спасибо, бляха. Работает как шарм! Большое спасибо! – VGM

Смежные вопросы