당신이 사용하는 경우 ' *| *'
, awk
같은 해석을 space
OR space
. 따라서 얻은 출력은 올바른 것입니다. |
구분 기호로 필요하면 이스케이프하십시오.
$ echo "1 a | 2 b | 3 c " | awk -F' *\\| *' '{ print "-->" $2 "<--" }'
-->2 b<--
공지 사항 당신이 있기 때문에, 두 번을 탈출해야한다는 awk
,이 \|
고려 |
도 다시 논리적으로 해석 얻을 것이다으로 OR .
이 때문에 문자 클래스에서 이러한 특수 문자를 이스케이프하는 것이 매우 인기가 []
있습니다.
$ echo "1 a | 2 b | 3 c " | awk -F' *[|] *' '{ print "-->" $2 "<--" }'
-->2 b<--
-------------------echo "1 a | 2 b | 3 c " | awk -F '|' '{print $2}' | tr -d ' '
나를 위해 "2 b"생성
출처
https://stackoverflow.com/questions/22019812