Сценарий оболочки Unix для заполнения даты из файла в качестве первого столбца в файле

Дисплей фактически является X-сервером; на каждый X-сервер приходится ровно один дисплей. Таким образом, несколько X-серверов не могут работать одновременно на одном дисплее, а X-сервер не может работать одновременно на нескольких дисплеях. (Строго говоря, последний пункт неверен, но я не думаю, что существует X-сервер, который может обслуживать несколько дисплеев.)

См. описание:displaynumber в справочной странице Xserverи раздел «Отображаемые имена» справочной страницы X.

1
14.07.2020, 10:29
1 ответ

Обратите внимание, что редко требуется вызывать awkв цикле оболочки, так как он сам может обрабатывать несколько файлов в качестве аргументов командной строки. Кроме того, зацикливание содержимого файла и передача отдельных строк крайне неэффективны и поэтому не рекомендуются.

Собственно весь функционал можно реализовать в виде awkпрограммы:

awk '
    BEGIN {OFS=FS="|"}
    FNR==1 {d=gensub("/","","g",$2); print;}
    FNR>1 {print d,$0}
' abc.dat

Пояснение:

  • В первой строке каждого файла используется функция gensub()для создания копии второго поля (, содержащего дату ), где все /заменяются пустой строкой (, т.е. удалено ).
  • Во всех последующих строках эта измененная копия добавляется перед содержимым исходной строки.
3
18.03.2021, 23:19

Теги

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