열에서 grep을 사용하는 방법은 무엇입니까?

열에서 grep을 사용하는 방법은 무엇입니까?

열 명령의 특정 열에 grep을 적용하고 싶습니다.

마이파일.txt

3,ST,ST01,3,3,856
3,ST,ST02,4,9,0234
6,N1,N101,2,3,ST
6,N1,N102,1,60,Comcast
6,N1,N103,1,2,92

내 명령:

column -s, -t < myfile.txt | grep -w "ST"

여기서는 두 번째 열의 ST 패턴을 grep하고 싶습니다. 어떻게 해야 하나요?

예상되는 결과:

3       ST            ST01              3            3            856
3       ST            ST02              4            9            0234

답변1

awk쉼표를 계산하기 위해 멋진 정규식을 사용하지 않고 이 문제를 해결하려면 이를 사용하는 것이 가장 좋습니다 .

awk -F, '$2=="ST"'
  • -F,매개변수는 데이터의 쉼표로 설정되는 구분 기호를 지정합니다.
  • $2일치시키려는 두 번째 열을 나타냅니다.
  • "ST"일치시키려는 값입니다.

답변2

ST열 2를 입력하세요 (여기에서는 생략 -E가능 {1}).

grep -E '^([^,]*,){1}ST[^,]*' file

산출:

3 ST ST01 3 3 856
3 ST ST02 4 9 0234

ST6열로 이동 :

grep -E '^([^,]*,){5}ST[^,]*' file | column -s, -t

산출:

6 N1 N101 2 3 ST

답변3

을 사용하여 awk필요한 열을 선택할 수 있습니다 .

column -s, -t < myfile.txt | awk '$2 == "ST"'

쉘 변수를 사용하는 경우,

seg="ST"
column -s, -t < $ST_FILE | awk -v var="$seg" '($2 == var)'

관련 정보