awk의 명령 출력에서 ​​특정 줄 가져오기

awk의 명령 출력에서 ​​특정 줄 가져오기

임팔라 쉘에서 특정 레코드를 읽으려면 파이프를 사용했습니다. 이게 내가 얻은 거야

[cloudera@localhost ~]$ echo "select * from abc where key > 'a-26052014015400' limit 1;" | impala-shell
Starting Impala Shell without Kerberos authentication
Connected to localhost.localdomain:21000
Server version: impalad version cdh5-1.3.0 RELEASE (build 40e1b62cf0b97f666d084d9509bf9639c575068c)
Welcome to the Impala shell. Press TAB twice to see a list of available commands.

Copyright (c) 2012 Cloudera, Inc. All rights reserved.

(Shell build version: Impala Shell vcdh5-1.3.0 (40e1b62) built on Tue Mar 25 13:46:44 PDT 2014)
Query: select * from abc where key > 'a-26052014015400' limit 1
[localhost.localdomain:21000] > +------------------------+------+----------------+-------+
| key                    | hpid | uts            | value |
+------------------------+------+----------------+-------+
| a-26052014015700 | HS2  | 26052014015450 | 50    |
+------------------------+------+----------------+-------+
Returned 1 row(s) in 2.42s
Goodbye

내가 정말로 원하는 것은 a-26052014015700 | HS2 | 26052014015450 | 50awk 프로그래밍의 이 기록입니다. 파이프 awk 명령을 사용해 보았습니다.

`echo "select * from abc where key > 'a-26052014015400' limit 1;" | impala-shell| awk -F'=' '{print $2}' | awk -F '>' '{print $1}`

그러나 예상한 결과를 얻지 못했습니다. 레코드를 추출하는 더 좋고 효율적인 방법이 있습니까?

답변1

다음으로 파이핑해 보세요 grep.

$  grep -E "| a-[0-9]* | HS2  | [0-9]* | [0-9]* |" 

|첫 번째 와 마지막을 제거하십시오 |.

$  grep -Eo "  a-[0-9]* \| HS2 \| [0-9]* \| [0-9]* " 

"-E"는 확장 정규식 구문에 액세스합니다.

"-o"는 줄의 전체 내용이 아닌 줄의 일치하는 부분만 출력하는 데 사용됩니다.

답변2

출력이 항상 다음 형식이라는 것을 알고 있다면엑스제목 행 및바닥글 행에서는 필요한 부분만 사용하여 얻을 수 있습니다 head.tail

    에코 쿼리|임팔라 쉘|tail-n+엑스|헤드-엔-

    # -- 위의 예에서 --
    echo "key > 'a-26052014015400'이 1인 abc에서 *를 선택하세요."
                |테일-n +13 |헤드-n -3

    # 반품
    a-26052014015700 50 |

꼬리

    -N,--알았어=칼륨
            마지막 10줄 대신 마지막 K줄을 출력합니다.
            또는 사용-N+K 라인 K부터 시작하여 라인을 출력합니다.

머리

    -N,--알았어=[-]케이
            처음 10줄 대신 처음 K줄을 인쇄합니다.
            "-"로 시작하여 각 파일의 마지막 K줄을 제외한 모든 줄을 인쇄합니다.

관련 정보