У меня есть текстовый файл в качестве ввода: скажем, xyz.txt
TIME SR No TYPE DATA
2.046103 1 1 Tx d 8 01 01 01 99 9A 9B 9C 9D
2.046163 3 1 Rx d 8 01 01 01 99 9A 9B 9C 9D
2.046361 2 1 Rx d 8 01 01 01 99 9A 9B 9C 9D
2.046916 1 3 Tx d 8 01 01 01 9B 9C 9D 9E 9F
2.046977 3 3 Rx d 8 01 01 01 9B 9C 9D 9E 9F
2.047177 2 3 Rx d 8 01 01 01 9B 9C 9D 9E 9F
2.048034 1 5 Tx d 8 01 01 01 AD AE AF B0 B1
2.048095 3 5 Rx d 8 01 01 01 AD AE AF B0 B1
2.048295 2 5 Rx d 8 01 01 01 AD AE AF B0 B1
2.050006 1 8 Tx d 8 01 01 01 B1 B2 B3 B4 B5
2.050065 3 8 Rx d 8 01 01 01 B1 B2 B3 B4 B5
2.050265 1 8 Rx d 8 01 01 01 B1 B2 B3 B4 B5
2.050632 2 601 Rx d 8 01 01 01 CA CB CC CD CE
2.050690 3 700 Rx d 8 01 01 01 CA CB CC CD CE
2.050887 1 700 Rx d 8 01 01 01 CA CB CC CD CE
Требование: мне нравится извлекать первые числовые строки (TIME) из строк, которые содержат SR "1" и TYPE как "Rx"
Я почти не знаю Perl и попробовал команду, прочитав в интернете, т.е.:
perl -nle "print if /"1"\s(.+?)"Rx"/" xyz.txt >>output.txt
для извлечения совпавших строк
Вывод, который я получил в output.txt:
2.046163 3 1 Rx d 8 01 01 01 99 9A 9B 9C 9D
2.046361 2 1 Rx d 8 01 01 01 99 9A 9B 9C 9D
2.050265 1 8 Rx d 8 01 01 01 B1 B2 B3 B4 B5
2.050632 2 601 Rx d 8 01 01 01 CA CB CC CD CE
2.050887 1 700 Rx d 8 01 01 01 CA CB CC CD CE
Желаемый вывод (Требование) - только эти:
2.050265
2.050887
Полная информация о двух вышеуказанных значениях взята из xyz.txt:
2.050265 1 8 Rx d 8 01 01 01 B1 B2 B3 B4 B5
2.050887 1 700 Rx d 8 01 01 01 CA CB CC CD CE
помогите мне .... какие изменения мне нужно сделать, чтобы это удовлетворило:
а. учитывайте только «1» из строки Rx, а не из строки «No» в файле xyz.txt.
б. Удалить все, кроме первой строки в output.txt