Изменить порядок строк в каждой трехстрочной записи

Попробуйте использовать эхо вместо кат .

# echo 'enter-uefi-fw' > /sys/firmware/efi/vars/OsIndications-8be4df61-93ca-11d2-aa0d-00e098032b8c/raw_var

-121--46150-

Отказоустойчивым для создания сценария конфигурации является autoreconf -i , который не только сам вызывает autoconf , но и множество других необходимых инструментов.

-121--19507-

Это произойдет, если в команде есть незамкнутая цитата. Это что-то вроде:

$ echo "test here
>
>
...

Вы можете выйти из этого режима, закрыв кавычку (напишите " или ', или что бы ни было в вашей открытой кавычке). Это также может быть блок с разделителями, частично полный для или для или некоторые другие конструкции. Можно также нажать Ctrl-C для отмены этой команды (затем нажать Up для ее изменения).

Иногда это может произойти без очевидной пропущенной цитаты, когда параметр или история расширения происходят там, где их не ожидали.


> - это ваше значение PS2 («вторичная подсказка»). Вы можете изменить это на что-то другое, чтобы напомнить вам, что произошло:

PS2="Unclosed >"

в вашем .bashrc заставит его напечатать Unclosed > в начале каждой строки.

0
09.05.2015, 19:15
3 ответа

Попробуйте:

sed -n 'h;n;p;n;G;p' < file.in > file.out

Например:

$ seq 9 | sed -n 'h;n;p;n;G;p'
2
3
1
5
6
4
8
9
7
4
28.01.2020, 02:14

Если я читаю ваш вопрос правильно, вы хотите принять последовательности из 3 строк из файла и поменяйте порядок Первый и последний в каждом? С GNU SED, вы могли бы сделать что-то вроде этого, я думаю:

sed -e :a -e '$!N' -e 's/\(.*\)\n\(.*\)\n\(.*\)$/\2\n\3\n\1/;Ta' file

, который постоянно пересекает линии, пока он не сможет сделать своп, а затем начинается.

2
28.01.2020, 02:14

С awk :

awk '{l=$0;getline;print;getline;print $0"\n"l;}' < file_in > file_out

Объяснение:

  1. Сохранить текущую запись в переменной l

  2. Получить следующую запись, используя getline

  3. Распечатать эту запись ( print , вызов без аргументов всегда будет распечатать текущую запись)

  4. Получить следующую запись снова используя getline

  5. Распечатайте эту запись, новую строку и первую запись, хранящуюся в l

  6. . Для следующей записи (ей) начните с 1.

Ссылки

1
28.01.2020, 02:14

Теги

Похожие вопросы