что такое awk '{печатают 1$ +0.45 “” “” 3$ за 2$}' file1> file2?

См. также:

sudo ethtool -P eth0

Так, для задержки MAC-адреса к его значению по умолчанию (принятие GNU grep здесь):

set_to_real() (
  for i do
    mac=$(ethtool -P "$i" | grep -iEom1 '([0-9a-f]{2}:){5}[0-9a-f]{2}') &&
      ip link set dev "$i" address "$mac"
  done
)
set_real eth0
5
30.01.2014, 01:58
2 ответа

Давайте сломаем это. awk '{foo}' file применит выражение foo к каждой строке file и распечатайте результат к терминалу (стандартный вывод). awk разделяет его входные строки на пробеле (по умолчанию) и сохраняет каждое поле как $1, $2 и т.д.

Так, фактическое выражение Вы выполняете средства: считайте каждую входную строку, добавьте 0.45 к значению первого поля и затем распечатайте то поле, а также второе и третье. Это наиболее легко объяснено с простым примером:

$ cat file.txt 
10 20 30 40
50 60 70 80

$ awk '{print $1+0.45 " " $2 " " $3 }' file.txt 
10.45 20 30
50.45 60 70

Так, как Вы видите, awk сценарий добавил 0.45 к первому полю каждой строки и затем распечатал его наряду со вторым и третьим. Четвертое было проигнорировано, так как Вы не сказали этому печатать $4.

Следующий бит не имеет никакого отношения awk, > символ для перенаправления вывода и используется оболочкой (удар или zsh или независимо от того, что Вы используете). В целом command > file сохранит вывод command в файле file перезапись содержания файла, если это существует и создание его, если это не делает.

Соединение всего:

$ ls
file.txt

$ cat file.txt 
10 20 30 40
50 60 70 80

$ awk '{print $1+0.45 " " $2 " " $3 }' file.txt > file2.txt

$ ls
file2.txt  file.txt

$ cat file2.txt 
10.45 20 30
50.45 60 70
11
27.01.2020, 20:34

file2 имеет 0,45 добавленных к каждому значению первого столбца (x'es), столбец 2 и 3 копируются, как, что-либо еще на строке проигнорировано.

awk читает каждую строку file1 и запускает скрипт между {}

Скрипт запущен на каждой строке, белый расположил delimitered поля с интервалами, присвоены позиционным параметрам 1$, $2$ 3...

Параметры печатаются кроме 1$, добавляется с 0,45

1
27.01.2020, 20:34

Теги

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