2016-07-01 3 views
0

Мне нужно, чтобы строки grep из файла были разделены запятыми и направили вывод в другой файл. Таким образом, если второе значение начинается с «U», а последнее значение - «Успех», то эта строка соответствует шаблону.Соответствие шаблону в строке с использованием grep

должны соответствовать шаблону:

324,[email protected],[email protected],C1755,C1755,Kerberos,Network,LogOn,Success 

Если не совпадают:

456,C11[email protected],[email protected],C625,C625,?,Network,LogOff,Success 
123,[email protected],[email protected]?,C2109,C2109,?,?,TGT,Fail 

Спасибо!

+0

Что вы пытаетесь? Это не сервис для написания программ, потому что вы этого не хотите. – Gene

+2

'^ [^,] +, U. * Успех $' – Natecat

+1

@Natecat: обратите внимание, что '+' требует 'grep -E' (aka' egrep'). –

ответ

1

Как столбчатых требования соответствия становятся все более сложными, awk решение становится более привлекательным:

awk -F, '$2 ~ /^U/ && $(NF) == "Success"' 

(действие по умолчанию матча, чтобы напечатать строку.)

Вот решение с использованием grep хотя:

grep '^[^,]*,U.*,Success$' 

И sed:

sed '/^[^,]*,U.*,Success$/ p; d' 
1
grep '^[^,]*,U.*,Success$' 

Посмотрите на первую запятая, U, последняя запятая, Success и конец строки.

Смежные вопросы