2010-11-24 3 views
0

나는 data.txt로는, 내용이 파일 있습니다 :데이터를 매트릭스 형식으로 표시 하시겠습니까?

100X00 
20X0X0 
3000XX 
4X00XX 

은 내가 SED/AWK 나처럼, 어떤 명령을 사용하여 무료입니다

A B C D E 
1    X   
2  X   X  
3     X X 
4 X    X X 

같은 매트릭스 형식으로 표시 할 grep. 현재 방법은 다음과 같습니다.

a=0 
echo -e "\tA\tB\tC\tD\tE" 
while read line 
    do a=$(($a+1)); 
    sed '{s/0/ /g}' data.txt 
done < data.txt 

물론 작동하지 않습니다. 누구든지이 일에 나를 도울 수 있습니까?

+0

좋아, 나는 물어 보거나 파열 할 것이다. 이것은 비행기 좌석 및 예약과 관련된 무언가가있는 숙제에 관련이있는 것은 아닙니다. 지난 며칠 동안 나는 적어도 두 가지 다른 질문을 보았습니다. bash와 그 파일들을 처리하는 것에 관한 것입니다 ... – thkala

+0

hmmm, 당신 말이 맞아요 : http://stackoverflow.com/questions/4262708/bash-automatic-update- 데이터 파일 및 디스플레이 –

+0

@ ltn100 :이 또한 매우 유사하게 보입니다. http://stackoverflow.com/questions/4255294/how-to-update-matrix-like-data-txt-file-in-bash- 프로그래밍 – thkala

답변

0
echo -e "\tA\tB\tC\tD\tE" 
sed 's|.|&\t|g; s|\t0|\t|g; s|\t*$||' <data.txt 

입력 한 샘플이 제대로 작동하는 것 같습니다.

EDIT :

설명 :

후, 후 (첫 번째 열에 아니며 따라서) 탭에 의해 미리 결정되어 그 0을 제거하고, 각 문자 뒤에 수평 탭 (\의 t)를 추가 행의 끝에서 탭을 제거하십시오.

EDIT2 :

내 첫 번째 대답에 비해 약간의 변화가 있음을 유의하시기 바랍니다. 나는 그 효과를 독자에게 운동으로 남겨 둘 것이다.

+0

당신은 천재입니다. 당신이 sed 코드를 설명 할 수 있다면, 나와 같은 새로운 bash 스크립트 학습자에게는 훨씬 더 좋을 것입니다. 제발 주 시겠어요? – commando

+0

설명해 주셔서 감사합니다. 그것으로 노는 후에, 나는 지금 부호를 이해 한 ㄴ다는 것을 생각한다. 하지만 나는 다른 포스트에 숙제를 올리겠다고 말할 때 슬프다. = ( – commando

+0

리다이렉션은 불필요하다.'sed'는 파일 이름을 인수로 받아 들인다. –

관련 문제