다음과 같은 문자열이 있습니다.
**XX_EMAIL_FILES FCP_REQID=9614696 FCP_LOGIN="APPS/sup12" FCP_USERID=5667 FCP_USERNAME="SRI" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=1 "9614556_SUP12_XX_Workflow_Stuck_AP_Invoices.csv" "/tmp_mnt2/attachments" "[email protected]" "This is the subject for the mail" "PFA for the list of Invoices that are stuck in workflow."**
간단히 다음 문자열을 변수로 추출합니다.
이메일 제목입니다
이번에도 다음 문자열을 다른 변수로 추출하세요. PFA는 워크플로에 정체된 송장 목록을 표시하는 데 사용됩니다.
항상 같은 것은 아닙니다. 문자열은 사용자가 입력하는 내용에 따라 달라질 수 있습니다.
UNIX 명령을 사용하여 이러한 문자열만 얻는 방법을 이해하도록 도와줄 수 있는 사람이 있나요?
감사합니다, 보미님
답변1
필드 수와 순서 및 필드에 포함된 따옴표를 결정하면 다음을 cut -d\"
사용하여 필수 필드를 얻을 수 있습니다.
echo 'XX_EMAIL_FILES FCP_REQID=9614696 FCP_LOGIN="APPS/sup12" FCP_USERID=5667 FCP_USERNAME="SRI" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=1 "9614556_SUP12_XX_Workflow_Stuck_AP_Invoices.csv" "/tmp_mnt2/attachments" "[email protected]" "This is the subject for the mail" "PFA for the list of Invoices that are stuck in workflow."' \
| cut -f14 -d\"
This is the subject for the mail
echo 'XX_EMAIL_FILES FCP_REQID=9614696 FCP_LOGIN="APPS/sup12" FCP_USERID=5667 FCP_USERNAME="SRI" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=1 "9614556_SUP12_XX_Workflow_Stuck_AP_Invoices.csv" "/tmp_mnt2/attachments" "[email protected]" "This is the subject for the mail" "PFA for the list of Invoices that are stuck in workflow."' \
| cut -f16 -d\"
PFA for the list of Invoices that are stuck in workflow.
awk
또는 마지막 두 필드를 가져와야 하는 경우 다음을 사용하는 것이 더 나을 수 있습니다.
echo 'XX_EMAIL_FILES FCP_REQID=9614696 FCP_LOGIN="APPS/sup12" FCP_USERID=5667 FCP_USERNAME="SRI" FCP_PRINTER="noprint" FCP_SAVE_OUT=Y FCP_NUM_COPIES=1 "9614556_SUP12_XX_Workflow_Stuck_AP_Invoices.csv" "/tmp_mnt2/attachments" "[email protected]" "This is the subject for the mail" "PFA for the list of Invoices that are stuck in workflow."' \
| awk -F\" '{ print $(NF-3) }'
This is the subject for the mail