2017-10-12 8 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の& sedコマンドが、運を使って試してみました。助けてください。

+4

あなたのスクリプトを見せてください – user1506104

答えて

2

awkの使い方:それはヘッダである場合は、

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

店をして、行を削除します。これは、あなた(GNU SED)のために働くかもしれない

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

それは...うまくありがとうございます。 – SSK

0

を。それ以外の場合は、保存された行を追加して、その行を入れ替えます。

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 
関連する問題