LINUX.ORG.RU

Очередной вопрос по awk

 


0

1

Есть входной набор данных:

«1»;«2»;«3»;«4»;«5»;«6»;«7»;«8»;«9»;"";«11»;«12»;«13»;«14»;«15»;«16»;«Viber In»;«1» «1»;«2»;«3»;«4»;«5»;«6»;«7»;«8»;«9»;«10»;«11»;«12»;«13»;«14»;«15»;«16»;«17»;«2» «1»;«2»;«3»;«4»;«0010remove»;«6»;«7»;«8»;«9»;"";«11»;«12»;«13»;«14»;«15»;«16»;«17»;«3» «1»;«2»;«3»;«4»;«5»;«6»;«7»;«$%dlkj1234567»;«9»;«10»;«11»;«12»;«13»;«14»;«15»;«16»;«Skyline (wl)»;«4» «1»;«2»;«3»;«4»;«5»;«6»;«7»;«8»;«9»;«10»;«11»;«12»;«13»;«14»;«15»;«16»;«17»;«5» «1»;«2»;«3»;«4»;«not0010remove»;«6»;«7»;«8»;«9»;"";«11»;«12»;«13»;«14»;«15»;«16»;«17»;«6» «1»;«2»;«3»;«4»;«5»;«6»;«7»;«8»;«9»;«10»;«11»;«12»;«13»;«14»;«15»;«16»;«17»;«7»

есть авк скрипт:

awk 'BEGIN {OFS=FS=";"} {if (!(($5 == "\"\"") || (($17 == "\"Viber In\""||$5 ~ /0010/) && $10 == "\"\""))) print}'

Проблема в том, что мне надо выпиливать строку №3, и оставлять №6. Но с текущим условием скрипт удаляет обе. Если заменить на

$5 ~ /^0010/
, то ничего не происходит.

Как быть?


Так может вместо

$5 ~ /^0010/
должно быть
$5 ~ /^"0010/
(с кавычкой, так как они никуда не денутся сами).

xaizek ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.