%EB%A5%BC%20%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%97%90%20%EB%84%A3%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
파일 A가 있다고 가정해 보겠습니다.
fileA
fileB
현재 다음과 같은 파일이 있다고 가정해 보겠습니다.
fileA_someprefix_20160101.txt
지금 나는 원한다A의 접두사가 붙은 모든 행과 일치합니다.filename
, 그래서 나는 생각한다:
FILE_NAME="fileA_someprefix_20160101.txt"
awk '"$FILE_NAME" ~ /^$1/' A.txt
나는 성공하지 못한 채 달러 기호를 탈출하기 위해 다양한 방법을 시도했습니다.
모든 예에서 필드는 정규 표현식이 아닌 표현식(왼쪽)의 일부입니다.
어떻게 reverse
시작하나요?
답변1
GNU awk를 사용하면 문자열 표현식이 ~
.
awk -v FILE_NAME="$FILE_NAME" 'FILE_NAME ~ ("^" $1)' A.txt
답변2
awk
정규식에서는 변수를 참조 할 수 없습니다 /regex/
.
POSIXly 접두사를 확인하려면 index()
다음 함수를 사용하세요.
FN="fileA_someprefix_20160101.txt" awk 'index(ENVIRON["FN"], $1) == 1' <file
~에서POSIX 사양awk
:
색인(에스,티)
1부터 시작하는 번호가 매겨진 문자열의 위치를 문자 단위로 반환합니다.에스어디에 문자열티먼저 발생하거나 전혀 발생하지 않는 경우 0입니다.