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

Я получил это, и это:

$date -u +'%Y-%m-%d %H:%M:%S.%3N'

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

$date -u +"%F %T.%3N

и вывод для обоих, как показано ниже:

2017-05-12 23:10:54.268

-u только для часового пояса UTC. Вы можете удалить его.

0
08.01.2017, 03:13
2 ответа

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

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

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

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

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

sed 's/\([0-9]\+\) \(.*\)/\2 \1/' ~path/to/file.txt
1
28.01.2020, 02:25

На самом деле, вы были близки. :)

Попробуйте: awk '{print $ 2, $ 3, $ 1}' filename> output_file

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

2
28.01.2020, 02:25

Теги

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