У меня есть HTML файл с тысячами строк, но что-то повторяется.
CODE=12345-ABCDE-12345-ABCDE</div>...<!--This line goes on for hundreds of characters-->
Теперь строка начинается с "CODE =" каждый раз, и длина кода одинакова каждый раз. Следующие 28 символов - это буквы, цифры или тире.
cat mysite.html | grep "CODE="
Но я бы хотел, чтобы регулярное выражение отображало все на линии ПЕРЕД </div>
Благодарю!
Вместо этого вы можете использовать cut
:
cat myfile.html | cut -c 6-28
Это показывает символы 6 - 28 каждой строки. Это использует тот факт, что длина CODE=
известна, а также длина следующего кода.
Вы также можете использовать sed
:
sed -rn 's@^(CODE=[A-Za-z0-9\-]{23})</div>.*@\1@p' file
Сопоставьте любую строку с CODE=
за которой следуют 23 символа, содержащие either letters, numbers, or dashes
, а затем </div>
cat mysite.html | grep "CODE=" | cut -c 6-29
cat
здесь.grep "CODE=" mysite.html
такой же, какcat mysite.html | grep "CODE="
.