Как мне выполнить многострочное сопоставление и подстановку с помощью awk?

Ein Neustart scheint es gelöst zu haben. Ich bin mir nicht sicher, was das ursprüngliche Problem gewesen sein könnte. Auch bei gnome+wayland zeigt xrandr mindestens die aktuelle Auflösung an.

1
13.11.2018, 18:02
3 ответа

Вы можете запустить что-то вроде

awk 'BEGIN{RS=SUBSEP; ORS="" } {print gensub(/([^0-9])\n/,"\\1","g",$0)}' ex
  • RS=SUBSEPустанавливает разделитель регистров на значение, которое никогда не присутствует в текстовом файле (поглощает входной файл до$0)
  • Тогда сделай свое любимое многострочное преобразование
1
28.04.2021, 23:40

Я бы обратился к этому по-другому :, перебирая ввод до тех пор, пока вы не найдете «условие окончания строки -»:

awk '{ 
       line=$0; 
       while($0 !~ /[[:digit:]] *$/ && getline > 0) { 
         line=line$0; 
       }
       print line
     }' < input

В расширенном входном файле:

line 1
li
ne 2
li
ne 
number 3
line 4

Или, более подробно (, чтобы увидеть завершающий пробел):

$ cat -e input
line 1$
li$
ne 2$
li$
ne $
number 3$
line 4$

Вывод:

line 1
line 2
line number 3
line 4
4
28.04.2021, 23:40

Маленький GNU sed?

sed ':L; /[0-9] *$/!{N; bL;}; s/\n//g' file
0
28.04.2021, 23:40

Теги

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