나는 다음과 같은 것을 원한다이와 관련하여:
cat infile | xargs -I {} -P3 curl {} -o /dev/null --silent --head --write-out "%{http_code} {}\n" > outfile
하지만 이 스크립트를 사용하면(예: 여러 쿼리를 실행하기 위해 xargs 포함):
for ip in `cat infile`; do
for sub in "" "www." "ftp."; do
host -t a "${sub}${ip}";
done
done | grep address | awk '{ print $4 }' > out
입력 파일:
google.com
facebook.com
결과물 파일:
172.217.172.14
172.217.30.196
157.240.6.35
31.13.67.35
답변1
xargs를 사용하면 bash를 호출하여 원하는 작업을 수행할 수 있습니다.
cat infile \
| xargs -I {} -P3 bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done '
이 명령 위에 원하는 것을 추가할 수 있습니다.
cat infile \
| xargs -I {} -P3 bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done ' \
| MY_POWER_FULL_SED_OR_GREP
또는 bash 명령에 grep을 추가하려는 경우
cat infile \
| xargs -I {} -P3 bash -c 'for sub in "" "www." "ftp."; do host -t a "${sub}{}" ; done | MY_POWER_FULL_SED_OR_GREP '