포괄적 인 스크립트에이 한 줄짜리가 있습니다.
grep -P -o "(?s)description\".+>" ./Hlinks.html \
| grep -P -o "(?s)ISBN[^:]{0,1}: {0,1}[-0-9X]+[ \|]*" \
| perl -p -e "s/ISBN[^:]*:*|[\|| ]//g"
| sed -n "/.*/p;1q" > ./nISBN.txt
이제 한 줄짜리가 아무 것도 출력하지 않을 때 기본 출력 (fe "NA")을 얻고 싶습니다. 이 소원을 얻기 위해 한 줄을 어떻게 풍부하게 할 수 있습니까?
고마워
월터
perl은 grep 및 sed가 수행 할 수있는 모든 작업을 수행 할 수 있으므로 파이프 라인을 단일 perl 스크립트로 축소 할 수 있습니다. 같은 것
perl -nE '
$found = 0;
if (/description\".+>/ && /ISBN[^:]?:\s*([-0-9X]+[ \|]*)/) {
$found = 1;
say $1;
}
END {say "N/A" unless $found}
' ./Hlinks.html > ./nISBN.txt
grep은 선 지향 도구이므로 (?s)
실제로 당신을 위해 어떤 일을하고 있는지 확실하지 않습니다 .
한 걸음 물러서서 해당 데이터에 HTML 파서를 사용해야합니다. 정규 표현식은 HTML을 파싱하기에 충분히 강력하지 않습니다.-> https://stackoverflow.com/q/4598162/7552
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다