печатать данные в той же строке

Это не против интеллектуального актера, потому что как владелец, он может изменить ()файл в любое время, вернув свои разрешения.

Это может быть полезно против программ, если вы хотите, чтобы ваши собственные программы не играли с некоторыми вашими файлами по какой-либо причине.

Однако обычно проще удалить этот файл.

Это также может быть полезно, если базовый драйвер файловой системы не поддерживает chmod (). Например, режимы файла davfs или vfat определяются флагами монтирования, а не метаданными файловой системы.

0
17.03.2021, 22:51
2 ответа

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

grep.... |
awk '{
  ORS = ORS == "\n" ? "" : "\n"
  print $3, $4
}'

Этот способ будет работать, поскольку две линии данных идут парами, одна за другой. Итак, для первой части мы делаем ORS нулевым, а для второй делаем новую строку. Запятая позаботится о разделении между третьим и четвертым полями.

0
18.03.2021, 22:24

Предполагая, что каждой строке ADDRвсегда предшествует USCDB:

awk '$2 == "USCDB" { date = $3 " " $4 } $4 ~ /^ADDR=/ { print date, $3, $4 }' input

Это сохраняет дату в переменной dateпри каждом обнаружении строки USCDB. Когда строка ADDRнайдена, это значение выводится вместе с полями 3 и 4.

Я также более строго отношусь к сопоставлению двух строк ADDRи USCDB, сопоставляя их только в определенных полях, а не по всей строке.

Этот код не тестировался, так как у меня не было данных для его проверки (был скриншот, но теперь его тоже нет ).

2
18.03.2021, 22:24

Теги

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