awk или sed, переместить первый столбец в конец ?

Может быть более элегантный способ, но вот двухэтапный:

for user in $(sort -n -t: -k3 /etc/passwd | cut -d: -f1)
do 
  grep ^${user}: /etc/shadow
done > /tmp/shadow.new

Он читает / etc / shadow один раз для каждой записи в / etc / passwd.

2
22.08.2017, 07:56
2 ответа

В Perl:

perl -pe 's/(\S+)(\s+)(.*)/$3$2$1/' file

(\S+)захватывает все непробельные символы с начала

(\s+)захватывает все пробелы, следующие за символом захваченные символы

(.*)захватить все остальное до конца строки

$3$2$1переворачивает 3 совпадающих шаблона

3
27.01.2020, 21:49
awk '{first = $1; $1=""; print $0, first}' file.txt

Сохраните первый столбец в переменной, запишите пустой в первый столбец, распечатайте всю строку($0$— это вся строка, теперь с пустым первым столбцом ), за которым следует первый столбец.

6
27.01.2020, 21:49

Теги

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