печатать в файл, только когда значение в одной строке немедленно сопровождается другим значением bash

Вы можете использовать prtconf , чтобы получить разрядность работающего ядра:

$ prtconf -k
Kernel Type: 64-bit

Вы также можете ls -l / unix или file / unix , но не гарантируется, что это то ядро, с которого вы сейчас загружаетесь.

$ file /unix
/unix: 64-bit XCOFF executable or object module not stripped
$ ls -l /unix
lrwxrwxrwx    1 root     system           21 Dec  9 06:48 /unix -> /usr/lib/boot/unix_64

0
24.05.2018, 19:37
4 ответа

Enfoque simplesed:

sed -n '/ VALUE1$/{ N; / VALUE2$/p }' xyz.dat > new.txt

new.txtcontenidos:

3 VALUE1
4 VALUE2
5 VALUE1
6 VALUE2
1
28.01.2020, 02:31

Otro awkenfoque:

awk '/VALUE1/{ bkup=$0 } /VALUE2/ && bkup{print bkup ORS $0; bkup=""}' infile
0
28.01.2020, 02:31

DosAwksoluciones:

--basado en getlinefunción:

awk '/ VALUE1$/ && (getline nl) > 0 && nl ~ /VALUE2$/{ print $0 ORS nl }' xyz.dat

--basado en la comparación de números de registros:

awk '/ VALUE1$/{ rec = $0; rn = NR+1 }NR == rn && /VALUE2$/{ print rec ORS $0 }' xyz.dat

La salida (para ambos):

3 VALUE1
4 VALUE2
5 VALUE1
6 VALUE2
0
28.01.2020, 02:31

Con sed

sed '/ VALUE1$/!d;N;/ VALUE2$/b;D' infile
1
28.01.2020, 02:31

Теги

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