2017-10-12 3 views
0

의 해당 라인에 헤더를 추가하는 방법을bash는 .. 내가 다음과 같은 파일을 가지고 있고, 난 단지 내 쉘 스크립트의 해당 라인에 헤더를 추가 할

CGRT,630,SC063P1 
10001,X,6849 
10003,X,6913 
10005,X,6977 
10007,X,7041 
10037,X,7105 
10039,X,7169 
CGRT,631,SC063P2 
10049,X,8481 
10051,X,8545 
10077,X,6721 
10079,X,6785 
10081,X,1185 
CGRT,632,SC063P3 
10110,X,1601 
10111,X,1633 
10112,X,1665 
10113,X,1953 
10114,X,1985 

필요한 출력이됩니다

CGRT,630,SC063P1 10001,X,6849 
CGRT,630,SC063P1 10003,X,6913 
CGRT,630,SC063P1 10005,X,6977 
CGRT,630,SC063P1 10007,X,7041 
CGRT,630,SC063P1 10037,X,7105 
CGRT,630,SC063P1 10039,X,7169 
CGRT,631,SC063P2 10049,X,8481 
CGRT,631,SC063P2 10051,X,8545 
CGRT,631,SC063P2 10077,X,6721 
CGRT,631,SC063P2 10079,X,6785 
CGRT,631,SC063P2 10081,X,1185 
CGRT,632,SC063P3 10110,X,1601 
CGRT,632,SC063P3 10111,X,1633 
CGRT,632,SC063P3 10112,X,1665 
CGRT,632,SC063P3 10113,X,1953 
CGRT,632,SC063P3 10114,X,1985 

.. 아래와 같이 이미 AWK에게 & 나오지 명령하지만 행운을 사용하여 시도했다. 도와주세요.

+4

귀하의 스크립트를 보여주세요. – user1506104

답변

2

사용 AWK : 당신 (GNU이 나오지도)에 대한이 작동 할 수

awk '!/^[0-9]/{h=$0;next}{print h,$0}' infile 
+0

작동합니다 ... 수 주셔서 감사합니다. – SSK

0

:

sed '/^[^0-9]/h;//d;G;s/\(.*\)\n\(.*\)/\2 \1/' file 

는 헤더, 저장하고 다음 줄을 삭제합니다. 그렇지 않으면 저장된 줄을 추가 한 다음 줄을 바꿔 넣습니다.

0

awk도 다음과 같이 도움이 될 수 있습니다.

awk '/^[a-zA-Z]/{val=$0;next} {print val "\t" $0}' Input_file 

출력은 다음과 같습니다.

CGRT,630,SC063P1  10001,X,6849 
CGRT,630,SC063P1  10003,X,6913 
CGRT,630,SC063P1  10005,X,6977 
CGRT,630,SC063P1  10007,X,7041 
CGRT,630,SC063P1  10037,X,7105 
CGRT,630,SC063P1  10039,X,7169 
CGRT,631,SC063P2  10049,X,8481 
CGRT,631,SC063P2  10051,X,8545 
CGRT,631,SC063P2  10077,X,6721 
CGRT,631,SC063P2  10079,X,6785 
CGRT,631,SC063P2  10081,X,1185 
CGRT,632,SC063P3  10110,X,1601 
CGRT,632,SC063P3  10111,X,1633 
CGRT,632,SC063P3  10112,X,1665 
CGRT,632,SC063P3  10113,X,1953 
CGRT,632,SC063P3  10114,X,1985