2016-11-02 2 views
0

파일 내용의 일부를 표시하려고합니다. 나는 현재 이제 내 문제는 내가 더로 같은bash의 특정 필드/열에 두 번째 잘라 내기 적용

bla=0.,bleh=2.,name=hello_im_here 

보이는 5 필드를 편집하고자한다

CONTENT="(cat foo.dat | cut -d ' ' -f 1,4,5)" 
TOPRINT=$(printf "%7s %10s %14s\n" $(eval $CONTENT)) 

에 내가 관심이 필드를 잘라 서식을 다음 코드를 사용하여 표시하고자하는 부분은 이름 ("hello_im_here")입니다. awk ( cut string in a specific column in bash에서와 같이)를 사용할 수 있다고 추측합니다. 그러나이 명령에 익숙하지는 않았으므로이 부분에 대한 자세한 내용을 알려 주시면 감사하겠습니다. 미리 감사드립니다.

+0

'awk'에 익숙해지기 위해 무엇을 했습니까? – hek2mgl

+0

아마도 나머지 부분은 그대로두고 내 파일의 다섯 번째 필드 만 처리하는 방법을 보지 못한다는 사실을 강조 했어야합니다. 그렇지 않으면 나는 묻지 않을 것이다. 그리고 제목에서 알 수 있듯이 코드를 사용자가 쉽게 읽을 수 있도록하기 때문에 가능하면 잘라내기를 사용합니다. – Neutrinoceros

+0

그래서 '컷'으로 무엇을 만들려고 했습니까? – hek2mgl

답변

1

시도해 볼 수 있습니까?

#!/bin/bash 
CONTENT=$(awk '{gsub(" *.*=","",$5); printf "%7s %10s %14s\n",$1,$4,$5}' foo.dat) 
echo $CONTENT 
+2

'cat'의 불필요한 사용, 왜'awk '{...}'foo.dat' 또는'awk '{...}'

+0

@ DavidC.Rankin; 당신 말이 맞아요. 나는 ans를 업데이트했다. 감사. –

+1

물론 습관을 깨는 데는 모두 시간이 걸립니다. (:'포함) ' –