2015-03-16 2 views
-1

Я хочу, чтобы проверить эту конкретную строку «20040213_25049.XXXX», содержащий XXXX или не с другой стороны, когда я пишу строку вроде «20040213_25049 .XXXX», то он согласован, но я хочу, чтобы матч с «20040213_25049.XXXX»Есть ли способ распечатать регулярное выражение с AWK?

echo "20040213_25049 .XXXX" | awk '{match($2,/XXXX/,a)}END{print a[0]}' (It is working) 
echo "20040213_25049.XXXX" | awk '{match($2,/XXXX/,a)}END{print a[0]}' (It is not working) 

У меня не было вывода из вышеприведенной строки.

+1

Соответствие второму полю. Второго поля нет ... Я предполагаю, что вы только что скопировали этот код и совершенно не знаете, как он работает вообще. Посмотрите [здесь] (https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html) –

+0

JID @ thnx для ur ответ в основном Я пытаюсь сопоставить подстроку XXXX с «20040213_25049 .XXXX ", но не может сравниться с другой стороны, когда я пишу вот так" 20040213_25049 .XXXX ", тогда я смогу совладать. – user2932003

+0

Что вы ищете, чтобы получить результат/результат? 'yes/no',' XXXX'? или 'XXXX' представляет номер, который вы хотели бы получить? – Jotne

ответ

0

Вы можете сделать некоторые, как это:

echo "20040213_25049.XXXX" | awk '/[0-9]{8}_[0-9]{5}\.XXXX/ {print "yes"}' 
yes 

Он будет проверить, если у вас есть 5 цифры, за которыми следует . и 4 X

Или как это?

echo "20040213_25049.XXXX" | awk '/20040213_25049\.XXXX/ {print "yes"}' 
yes 

echo "20040213_25049. XXXX" | awk '/20040213_25049\.XXXX/ {print "yes"}' 
+0

Даже не отдаленно то, о чем попросил ОП. Может, вам стоит подождать, пока они ответят на ваш вопрос, а не спешат отвечать за мнимые точки. –

+0

@JID это делает это: «Я хочу проверить эту конкретную строку« 20040213_25049.XXXX », содержащую XXXX или не« – Jotne

+0

».« Нет ли способа распечатать регулярное выражение с AWK? » –