웹 콘텐츠를 스크랩하는 동안 고정 숫자와 숫자를 일치시킵니다.

웹 콘텐츠를 스크랩하는 동안 고정 숫자와 숫자를 일치시킵니다.

소스 웹페이지를 구문 분석하여 다음과 유사한 모든 href를 찾으려고 합니다.

href='http://example.org/index.php?showtopic=509480

여기서 뒤의 숫자는 showtopic=무작위입니다(고정된 6자리 숫자(예: 123456 - 654321)).

while read -r line
do
    source=$(curl -L line) #is this the right way to parse the source?
    grep "href='http://example.org/index.php?showtopic=" >> output.txt 
done <file.txt #file contains a list of web pages

어느 번호가 맞는지 모르는 경우 어떻게 줄을 모두 잡을 수 있나요? 정규식을 사용하여 두 번째 grep을 수행할까요? 나는 다음과 비슷한 awk 범위를 사용하려고 생각했습니다.

awk "'/href='http://example.org/index.php?showtopic=/,/^\s/'" >> file.txt

또는 다음과 같은 이중 grep을 사용합니다.

grep "href='http://example.org/index.php?showtopic=" | grep -e ^[0-9]{1,6}$ >> output.txt 

답변1

cat input.txt |grep "href='http://example.org/index.php?showtopic=" > output.txt

cat은 grep으로 파이프되는 파일의 내용을 출력합니다. grep은 한 줄씩 비교하여 전체 줄을 출력 텍스트에 씁니다.

또는 sed를 사용할 수도 있습니다.

 sed -n "\#href='http://example.org/index.php?showtopic=#p"  input.txt >  output-sed.txt

관련 정보