Phonebook.dat 파일에 기본 전화번호부가 있습니다.
$ cat phonebook.dat
Onkh,Gregor:0123456789
Steinert,Franz:02473894091
Rubrecht,Magdalena:01474653371
그런 다음 다음을 사용하여 파일 형식을 지정할 수 있습니다.column
$ column -t -s ",:" phonebook.dat
Onkh Gregor 0123456789
Steinert Franz 0247389409
Rubrecht Magdalena 01474653371
하지만 파일의 한 줄만 출력하고 싶다면 어떻게 해야 할까요? 페이지 기반의 man
경우 column
마지막 매개변수로 파일이 필요합니다.
이 문제를 해결하려고 했지만 sed
"," 및 ":"를 다음과 같이 바꾸면 결과가 일관되지 않습니다.
$ sed 's/,/\t/g; s/:/\t/g' telefonbuch.dat
Onkh Gregor 0123456789
Steinert Franz 02473894091
Rubrecht Magdalena 01474653371
서식이 지정된 파일에서 한 줄을 사용하는 방법은 무엇입니까 column
?
답변1
한 줄만 형식화 하려면 column
유틸리티에 한 줄만 제공하십시오. 아래에서는 샘플 데이터의 행 2에만 형식을 지정합니다.
$ sed -n '2p' file | column -s ',:' -t
Steinert Franz 02473894091
filename 인수는 column
선택 사항입니다. 누락된 경우 유틸리티는 표준 입력에서 읽습니다. 위의 파이프라인에서는 이 사실을 사용하여 명령의 출력 형식을 지정합니다 sed
.
모든 명령을 사용하여 전화번호부에서 데이터를 추출할 수 있습니다. 여기서는 awk
명령을 사용하여 Magdalena
두 번째 필드의 항목을 출력합니다.
$ awk -F '[,:]' '$2 == "Magdalena"' file | column -s ',:' -t
Rubrecht Magdalena 01474653371
$ awk -v name="Magdalena" -F '[,:]' '(family != "" && $1 == family) || (name != "" && $2 == name)' file | column -s ',:' -t
Rubrecht Magdalena 01474653371
$ awk -v family="Rubrecht" -F '[,:]' '(family != "" && $1 == family) || (name != "" && $2 == name)' file | column -s ',:' -t
Rubrecht Magdalena 01474653371