2013-12-21 2 views
0

У меня есть HTML-файл с тысячами строк, но что-то повторяется.Grep и Regex HTML-файл

CODE=12345-ABCDE-12345-ABCDE</div>...<!--This line goes on for hundreds of characters--> 

Теперь Линия начинается с «CODE =» каждый раз, а длина кода же каждый раз. Следующие 28 символов - это буквы, цифры или тире.

cat mysite.html | grep "CODE=" 

Но я хотел бы регулярное выражение, чтобы показать все, на линии ПЕРЕД </div>

Спасибо!

ответ

1

Вы можете использовать cut вместо:

cat myfile.html | cut -c 6-28 

Это показывает символы 6 - 28 из каждой строки. Это использует тот факт, что известна длина CODE=, а также длина следующего кода.

+0

Спасибо за совет! Это работало как шарм: 'cat mysite.html | grep "CODE =" | cut -c 6-29' – Goodies

+2

@Goodies Вам не нужно использовать 'cat' здесь. 'grep" CODE = "mysite.html" совпадает с 'cat mysite.html | grep "CODE =" '. – Chris

0

Вы можете использовать sed также:

sed -rn '[email protected]^(CODE=[A-Za-z0-9\-]{23})</div>.*@\[email protected]' file 

матча любой линия уставившись CODE= следует 23 символов, содержащих either letters, numbers, or dashes, а затем </div>