awk는 '||'를 필드 구분자로 사용하지 않습니다.

awk는 '||'를 필드 구분자로 사용하지 않습니다.

여러 문자 구분 기호를 자르기 위해 awk를 사용하려고 합니다.

echo 'f1##f2' |awk -F '##' '{print $2}'

그러나 f2.

echo 'f1||f2' |awk -F '||' '{print $1}'

인쇄 f1||f2.

무슨 일인지 설명해 줄 수 있는 사람 있나요?

답변1

귀하의 경우 세로 막대 문자는 |특수 문자로 간주되므로 이스케이프해야 합니다.

echo "f1||f2" |awk -F'\\|\\|' '{print $1}'
f1

|대안으로 문자 클래스 에 넣을 수 있습니다 .

echo "f1||f2||f3" |awk -F'[|]{2}' '{print $3}'
f3

관련 정보