Как вывести вторую последнюю строку файла с помощью awk [duplicate]

Я не думаю, что данные EDID где-либо кэшируются, но вы можете поиграть с sudo ddccontrol -p , чтобы посмотреть, сможете ли вы их прочитать на в любое время по шине i2c по кабелю vga.См. документ .

Также используйте xrandr для управления своими мониторами. Он должен указать, к каким портам вашей видеокарты что-то подключено, и позволить вам поиграть с их настройками.

По умолчанию сервер Xorg пытается динамически определить, какие экраны подключены при запуске, если у вас нет замещающего файла xorg.conf . Вы можно попробовать создать такой файл с помощью sudo X -configure , когда X не запущен и ваши мониторы работают нормально. См. archlinux для некоторых примеров.

3
22.05.2018, 15:52
2 ответа

Para agregar una coma ,al final de la segunda -a -última línea con la modificación de cada archivo en el lugar -.

sedsolución:

Muestrafile1.txt:

C2-C1 1.5183
C3-C2 1.49
C3-C1 1.4991
O4-C3 1.4104
C1-C2-C3 59.78

Muestrafile2.txt:

C2-C1 1.5052
C3-C2 1.505
C3-C1 1.5037
S4-C3 1.7976
C1-C2-C3 59.95

sed -i 'x; ${s/.*/&,/;p;x}; 1d' file*.txt

Visualización de resultados:

$ head file[12].txt
==> file1.txt <==
C2-C1 1.5183
C3-C2 1.49
C3-C1 1.4991
O4-C3 1.4104,
C1-C2-C3 59.78

==> file2.txt <==
C2-C1 1.5052
C3-C2 1.505
C3-C1 1.5037
S4-C3 1.7976,
C1-C2-C3 59.95
0
27.01.2020, 21:18

awk lee los registros a medida que llegan y no tiene noción de qué tan lejos están del final esos registros si aún no los ha leído (Es muy posible que se agreguen registros adicionales después de leer y procesar el registro actual ).

Al contrario de sed, ni siquiera puede decir cuál es el último registro(sedtiene la dirección $que realmente implementa al leer internamente un registro por adelantado para saber cuál es el último ).

Sin embargo, puede realizar algún procesamiento al final en la declaración especial END, o con GNU awk, después de haber procesado cada archivo de entrada (en la declaración ENDFILE).

Entonces puede guardar los dos últimos registros mientras los procesa, y luego en la declaración END/ ENDFILE, recuperar el penúltimo desde donde lo guardó.

Por ejemplo:

awk '{prevlast = last; last = $0}
     END {if (NR >= 2) print "penultimate:", prevlast}' < input

O:

gawk '{prevlast = last; last = $0}
      ENDFILE {
       if (FNR >= 2) print "penultimate for", FILENAME ":", prevlast
      }' file1 file2

O para generalizarlo para el n th desde el final:

awk -v n=2 '{saved[NR % n] = $0}
     END {if (NR >= n) print saved[(NR + 1) % n]}' < input

gawk -v n=2 '{saved[FNR % n] = $0}
     ENDFILE {if (FNR >= n) print saved[(FNR + 1) % n]}' file1 file2
5
27.01.2020, 21:18

Теги

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