로서이전 질문에 대한 후속 조치, 문서 양쪽에 가변 문자가 있을 때 유사한 문자열 비교를 수행하는 방법은 무엇입니까?
예를 들어:
# test,date
"test1","27 March 2024 01:37 PM UTC"
"test2","13 April 2024 07:08 AM UTC"
"test4","13 April 2024 07:09 AM UTC"
"test5","13 April 2024 07:10 AM UTC"
"test6","13 April 2024 07:12 AM UTC"
어떻게 될 것인가?이전 답변:
awk -F, -v date="$(date +'%B %Y')\"$" '/^[^#]/ && $2 ~ date{print $1}'
이번 달(작성 당시 2024년 4월)부터 모든 테스트를 인쇄하도록 수정하시겠습니까?
답변1
awk -F, -v date="$(date +'%B %Y')\"$"
April 2024"$
변수에 저장된 정규식 만들기 date
. 이는 새 입력과 일치하지 않으므로 원하는 다른 일치 정규식 \"$
으로 변경하여 일치하는 정규식으로 조정하세요 . 예를 들면 다음과 같습니다.[^\"]*\"$
$ awk -F, -v date="$(date +'%B %Y')[^\"]+\"$" '/^[^#]/ && $2 ~ date{print $1}' file
"test2"
"test4"
"test5"
"test6"
또는 두 번째 필드에 포함될 수 있는 다른 값에 따라 더 강력할 수도 있습니다.
$ awk -F, -v date="$(date +'%B %Y') [0-9]{2}:[0-9]{2} [AP]M [[:upper:]]+\"$" '/^[^#]/ && $2 ~ date{print $1}' file
"test2"
"test4"
"test5"
"test6"