Быстрое и несколько грязное решение с тернарным оператором (condition?true:false), оно выполняет тест, который вы предоставили, и печатает либо $1, либо пробел или новую строку:
awk '{printf $4=="I-PER"?$1" ":"\n"}'
Выход:
$ <test awk '{printf $4=="I-PER"?$1" ":"\n"}'
Comandante de la Guardia Civil
Poblador
Вот довольно бедный альтернативный подход с массивом - по крайней мере, это не создает пустые строки, как показано выше, для нескольких последовательных строк I-PER:
awk '{
if ($4=="I-PER") {a[i++]=$1}
else if (length(a)>0) {
for (i in a) {printf a[i]" ";delete a[i]}
print ""
}
}
END {
if (length(a)>0) {
for (i in a) printf a[i]" ";print ""}
}'
Выход:
$ <test awk '{if($4=="I-PER"){a[i++]=$1}else if(length(a)>0){for(i in a){printf a[i]" ";delete a[i]};print ""}}END{if(length(a)>0){for(i in a)printf a[i]" ";print ""}}'
Comandante de la Guardia Civil
Poblador
Иногда, если вы разместили услугу для выделения порта, невозможно отправить или отправить данные в arduino. Для этого отключите любую службу, которая выделяет необходимый USB-порт, с помощью следующего набора команд:
sudo systemctl stop serial-getty@ttyACM0
sudo systemctl disable serial-getty@ttyACM0
Обычно обычным подозреваемым является служба serial-getty в случае, если вы играете с другими платами (например, малина pi).
Дальнейшие ответы можно найти по адресу: http://forum.arduino.cc/index.php?topic=546660.msg3726479#new
Иногда, если вы разместили услугу для выделения порта, невозможно отправить или отправить данные в arduino. Для этого отключите любую службу, которая выделяет необходимый USB-порт, с помощью следующего набора команд:
sudo systemctl stop serial-getty@ttyACM0
sudo systemctl disable serial-getty@ttyACM0
Обычно обычным подозреваемым является служба serial-getty в случае, если вы играете с другими платами (например, малина pi).
Дальнейшие ответы можно найти по адресу: http://forum.arduino.cc/index.php?topic=546660.msg3726479#new
Иногда, если вы разместили услугу для выделения порта, невозможно отправить или отправить данные в arduino. Для этого отключите любую службу, которая выделяет необходимый USB-порт, с помощью следующего набора команд:
sudo systemctl stop serial-getty@ttyACM0
sudo systemctl disable serial-getty@ttyACM0
Обычно обычным подозреваемым является служба serial-getty в случае, если вы играете с другими платами (например, малина pi).
Дальнейшие ответы можно найти по адресу: http://forum.arduino.cc/index.php?topic=546660.msg3726479#new