":"를 awk 필드 구분자로 사용하는 방법은 무엇입니까?
주어진 다음 명령 :
echo "1: " | awk '/1/ -F ":" {print $1}'
왜 awk가 출력합니까?
1:
"-F"는 awk 구문이 아닌 명령 행 인수입니다.
echo "1: " | awk -F ":" '/1/ {print $1}'
프로그래밍 방식으로 수행하려면 FS
변수를 사용할 수 있습니다 .
echo "1: " | awk 'BEGIN { FS=":" } /1/ { print $1 }'
루프가 아닌 메인 루프에서 변경 하면 현재 라인이 이미 분할되었으므로 다음 라인 읽기에 BEGIN
영향을 미칩니다 .
:
구분자 로 설정하는 방법에는 여러 가지가 있습니다 .
awk -F: '{print $1}'
awk -v FS=: '{print $1}'
awk '{print $1}' FS=:
awk 'BEGIN{FS=":"} {print $1}'
모두 동일하며 1
샘플 입력 "1 : 2 : 3"에 대한 반환 값은 다음과 같습니다 .
$ awk -F: '{print $1}' <<< "1:2:3"
1
$ awk -v FS=: '{print $1}' <<< "1:2:3"
1
$ awk '{print $1}' FS=: <<< "1:2:3"
1
$ awk 'BEGIN{FS=":"} {print $1}' <<< "1:2:3"
1
-F
awk
그 자체에 대한 논쟁이다 :
$echo "1: " | awk -F":" '/1/ {print $1}'
1
정규식을 필드 구분 기호로 사용할 수도 있습니다. 다음은 정규식을 사용하여 숫자 "10"을 구분 기호로 설정하여 "bar"를 인쇄합니다.
echo "foo 10 bar" | awk -F'[0-9][0-9]' '{print $2}'
AWK 텍스트 통역 작동 문서 전체 라인 방식을 진행 하고 그 라인마다 fieldwise 간다 각 라인의 필드에 따라서 $ 1, $ 2 .. $ n은 참조 ($ 1의 첫 번째 필드 인 $ 2 번째 필드 등이며 ...). 명령 줄 아래에서 "-F"스위치를 사용하거나 "FS = ..."가있는 두 개의 괄호 안에 필드 구분 기호를 정의 할 수 있습니다. 이제 "JUERGEN"의 대답을 고려하십시오.
echo "1: " | awk -F ":" '/1/ {print $1}'
필드 경계 위에서 ":"로 설정되므로 $ 1이라는 두 개의 필드 $ 1과 빈 공간 인 $ 2가 있습니다. 그런 다음 첫 번째 필드 만 출력하도록 필터에 지시하는 정규식 "/ 1 /"이 나타납니다. 통역사가 그러한 표현을 포함하는 줄에 걸려 넘어 질 때 (i 평균 1); "echo"명령의 출력은 "1"을 포함하는 한 줄이므로 필터가 작동합니다.
다음 예제를 다룰 때 :
echo "1: " | awk '/1/ -F ":" {print $1}'
구문이 지저분하고 인터프리터는 부분 F ":"를 무시하고 빈 공간 인 기본 필드 스플리터로 전환하여 "1 :"을 첫 번째 필드로 출력하고 두 번째 필드는 없습니다!
JUERGEN의 대답에는 좋은 구문이 포함되어 있습니다 ...
이것을 많이 쓸 필요가 없습니다. awk 명령에 -F 옵션을 사용하여 원하는 필드 구분 기호를 입력하고 인쇄하려는 열 번호를 언급 된 필드 구분 기호에 따라 구분하십시오.
echo "1: " | awk -F: '{print $1}'
1
echo "1#2" | awk -F# '{print $1}'
1
또는 다음을 사용할 수 있습니다.
echo "1: " | awk '/1/{print $1-":"}'
이것은 정말 재미있는 방정식입니다.
참고 URL : https://stackoverflow.com/questions/2609552/how-to-use-as-awk-field-separator
'IT story' 카테고리의 다른 글
Java에서 문자열을 UTF8 바이트 배열과 변환하는 방법 (0) | 2020.04.22 |
---|---|
디렉토리 및 서브 디렉토리에서 sed로 찾기 및 바꾸기 (0) | 2020.04.22 |
pty와 tty는 무엇을 의미합니까? (0) | 2020.04.22 |
클릭 한 요소의 클래스를 얻는 방법? (0) | 2020.04.22 |
CSS3에서 div를 50px로 100 % 미만으로 만들 수 있습니까? (0) | 2020.04.22 |