2014-04-29 3 views
3

나는 다음과 같이 나타납니다 파일이 있습니다명령 줄을 사용하여 파일에서 열을 선택하는 방법

some random text : azoidfalkrnalrkazlkja 
zlazekamzlekazmlekalzkemlkmlkmlkmlkmlkml 
o&kjoik&oék"&po"éképo"k&éo"kéo"koé"kk"k" 

Column1 Column2 Column3 Column4 Column5 
======================================= 
    0  1  1000 No_Light X Disabled (Persistent) 
    1  1  1010 Online X E-Port 10:20:30:40:50:60:70:80 "some comment" 
    2  1  1020 Online X F-Port 10:00:00:00:00:00:00:00 
    3  1  1030 No_Light X Disabled (Persistent) 

내가 grep "^ *[0-9].*Online" ./myfile 모든 "온라인"상태를 추출 할 수 있습니다. 어떻게하면 각 라인에 대한 추가 정보를 추출 할 수 있습니까 (예를 들어, 각 값을 $COLUMN 변수에 추가)? 세 번째 열에서 모든 데이터를 추출한 다음 결과를 배열로 처리하여 각 줄에서 데이터를 추출하고 싶습니다.

편집 : Quotting Jotne의 대답, 내가했던 그런 뭔가를해야만 :

COLUMN=3 
MYVARIABLE=($(awk '/Online/ {print $c}' c="$COLUMN" file)) 
echo ${MYVARIABLE[0]} 
+1

예상되는 출력은 무엇입니까? – anubhava

답변

2

는 EKS 열 # 3에서 정보를 얻으려면 그가 온라인 :

COLUMN=3 
awk '/Online/ {print $c}' c="$COLUMN" file 
1010 
1020 
+0

답변 해 주셔서 감사합니다. 어떻게하면 각 라인을 선택할 수 있습니까? 어레이처럼 작동합니까? (즉, 첫 번째 값 : $ VAR [0])을 선택 하시겠습니까? – user3584814

+0

나는 그것을하는 방법을 발견했다. – user3584814

+0

awk/Online/{print $ 3} 'file'이 충분할 때 이것은 복잡하게 보입니다 ... – twalberg

관련 문제