Как удалить текст с начала каждой строки и вставить его в конец каждой строки в терминале

У меня длинный список чисел и значений, которые выглядят примерно так:

100 value1 value2 

В этом списке около 150 строк, и я хочу переместить каждый номер в конец значений, чтобы он выглядел так:

 value1 value2 100 

Я попытался использовать эту команду для выполнения задания:

 awk -F: '{print $2 $3 $1}' ~path/to/file.txt 

но он просто печатает все в файле

 100 value1 value2 101 value3 value4 102 value5 value6 

Пожалуйста помоги!

Заранее спасибо!

  • содержание grep между двумя стартовыми скобками
  • От файла gpx до csv
  • Regex не работает с grep
  • Печать только строк, которые являются полностью числовыми
  • Как сделать секвенцию имен файлов с помощью циклов
  • Инкремент чисел внутри строк смещением
  • замените строку строки 6 после сопоставления строки
  • Печать нескольких строк после n-го появления в bash
  • 2 Solutions collect form web for “Как удалить текст с начала каждой строки и вставить его в конец каждой строки в терминале”

    На самом деле ты был близок. 🙂

    Попробуйте использовать: awk '{print $2,$3,$1}' filename > output_file

    И проверьте его с помощью: cat output_file

    Использование awk :

     awk '{ num = $1;$1=""; sub(/^ /,""); print $0,num; }' ~path/to/file.txt 

    Это позволяет использовать любое количество столбцов. Объяснение:

    • Сохраните первый столбец в переменной «num», а затем установите его в ничто (т.е. «»)
    • Удалите лишнее пространство между первыми двумя столбцами (используя подпункт)
    • Распечатать
      • $ 0 – вся строка
      • "num" исходный первый столбец

    Вы также можете использовать sed :

     sed 's/\([0-9]\+\) \(.*\)/\2 \1/' ~path/to/file.txt 
    Linux и Unix - лучшая ОС в мире.