2013-01-08 2 views
2

데이터 이름이 Book.txt이고 쉘에 표시하려고합니다. 그러나 메신저 특정 구분자 열에서 그룹 내 데이터를 시도하는 데 문제가특정 데이터를 열로 구분하는 구분 기호

Book.txt에는 다음이 포함

awk -F':' '{print $1 "\t" $2}' ./Book.txt 
: 다음 코드로 Book.txt의 데이터를 표시 할

Harry Potter 1:Author1:100 
Lord Of The Rings:Author2:200 

임 수

나는 파이프 라인 열

awk -F':' '{print $1 "\t" $2}' ./Book.txt | column -s "/t" 
를 사용하여 시도 때문에 열에 잘 준비로 그들을 싶습니다 그러나3210

하지만 그걸 시도해도 효과가없는 것 같습니다. 내 제목에는 공백이 있고 구분 기호로 사용되므로 -t 열을 사용할 수 없습니다. 대신 '탭'을 구분 기호로 사용하고 싶습니다.

답변

1

이 헤더와 마지막 열 제거를 차지한다 :

$ cat file 
Book Header 
Harry Potter 1:Author1:100 
Lord Of The Rings:Author2:200 

$ awk -F':' -v OFS=':' '{print $1, $2}' file | column -s: -t 
Book Header 
Harry Potter 1  Author1 
Lord Of The Rings Author2 
+0

헤이 sudo 덕분에 작동합니다! 그러나 이것이 무슨 일을하는지 abit 설명 할 수 있을까요? 'BEGIN {FS = OFS = ":"} – user1958567

+0

당신은 이미'-F'로 설정 한'FS'에 대해 알고 있습니다. 이것은':'인 필드 구분자 변수이고,'OFS'는 출력 필드 구분자입니다 필드 분리자가'awk '에 의해 변경되지 않도록':'로 설정하여'column'이'-s :'를 사용하여 마술을하도록 허용합니다. 옆에있는 체크 표시를 클릭하여 가장 유용한 답변을 수락하십시오. –

4

column 명령을 직접 사용할 수 있습니까?

column -s ":" -t Book.txt

결과 :

Harry Potter 1  Author1 100 
Lord Of The Rings Author2 200 
+0

내가 column.exe를 사용하여 시도하지만, 명령을 찾을 수 없습니다 말했다. – user1958567

+0

죄송합니다 cygwin에 .. 대신'열' –

+0

이제는 작동 중! 이 코드 조각은 짧지 만 내가 원했던 것과 똑같습니다. 감사! – user1958567