2016-12-22 12 views
0

実際、私はシェルスクリプトではかなり新しいです。コンマで区切られた2つの列があるとします。列に追加する行の値

OFFER_DELETE_SC_LEVEL,146 
OFFER_DELETE_SC_LEVEL,25 
OFFER_DELETE_SC_LEVEL,18 
OFFER_DELETE_SC_LEVEL,17 
OFFER_DELETE_SC_LEVEL,27 

私は別の行を持っています。この行の値は変更される可能性があります。下の行のようにカンマで区切られた5つの数字があります。それはもっとして5つの数字(例:1,5,3,7,8,9,10を、...)を有していてもよい私が好き行から値を追加したい

41,42,43,44,45 

以下

OFFER_DELETE_SC_LEVEL,146,41 
OFFER_DELETE_SC_LEVEL,25,41 
OFFER_DELETE_SC_LEVEL,18,41 
OFFER_DELETE_SC_LEVEL,17,41 
OFFER_DELETE_SC_LEVEL,27,41 
OFFER_DELETE_SC_LEVEL,146,42 
OFFER_DELETE_SC_LEVEL,25,42 
OFFER_DELETE_SC_LEVEL,18,42 
OFFER_DELETE_SC_LEVEL,17,42 
OFFER_DELETE_SC_LEVEL,27,42 
OFFER_DELETE_SC_LEVEL,146,43 
OFFER_DELETE_SC_LEVEL,25,44 
OFFER_DELETE_SC_LEVEL,18,44 
OFFER_DELETE_SC_LEVEL,17,44 
OFFER_DELETE_SC_LEVEL,27,44 
OFFER_DELETE_SC_LEVEL,146,45 
OFFER_DELETE_SC_LEVEL,25,45 
OFFER_DELETE_SC_LEVEL,18,45 
OFFER_DELETE_SC_LEVEL,17,45 
OFFER_DELETE_SC_LEVEL,27,45 

できますか?

答えて

1

これを試すことができます。

#!/bin/bash 
for var in $(sed 's/,/\n/g' file2); do 
     awk -v var=$var '{print $0"," var} ' file1 
done 

テスト;

$ ./test.sh 
OFFER_DELETE_SC_LEVEL,146,41 
OFFER_DELETE_SC_LEVEL,25,41 
OFFER_DELETE_SC_LEVEL,18,41 
OFFER_DELETE_SC_LEVEL,17,41 
OFFER_DELETE_SC_LEVEL,27,41 
OFFER_DELETE_SC_LEVEL,146,42 
OFFER_DELETE_SC_LEVEL,25,42 
OFFER_DELETE_SC_LEVEL,18,42 
OFFER_DELETE_SC_LEVEL,17,42 
OFFER_DELETE_SC_LEVEL,27,42 
OFFER_DELETE_SC_LEVEL,146,43 
OFFER_DELETE_SC_LEVEL,25,43 
OFFER_DELETE_SC_LEVEL,18,43 
OFFER_DELETE_SC_LEVEL,17,43 
OFFER_DELETE_SC_LEVEL,27,43 
OFFER_DELETE_SC_LEVEL,146,44 
OFFER_DELETE_SC_LEVEL,25,44 
OFFER_DELETE_SC_LEVEL,18,44 
OFFER_DELETE_SC_LEVEL,17,44 
OFFER_DELETE_SC_LEVEL,27,44 
OFFER_DELETE_SC_LEVEL,146,45 
OFFER_DELETE_SC_LEVEL,25,45 
OFFER_DELETE_SC_LEVEL,18,45 
OFFER_DELETE_SC_LEVEL,17,45 
OFFER_DELETE_SC_LEVEL,27,45 
+1

あなたは '$(cat file2 | sed 's /、/)の[Useless Use Of Cat](https://en.wikipedia.org/wiki/Cat_(Unix)#Useless_use_of_cat) '$(sed 's /、/ \ n/g' file2)'を直接書き込むことで、n/g ') 'を作成することができます。 – Aserre

+0

@Aserre;感謝の情報、私はanadを更新しました。 –

+0

が動作していません:(私が太陽を持っています –

0

これも役立ちますか教えてください。

awk 'FNR==NR{A[++num]=$0;next} {for(j=1;j<=NF;j++){for(i=1;i<=num;i++){print A[i]","$j}}}' file1 FS="," file2 

私はこれがあなたを助けてくれることを願っています。

+0

助けてくれない、空白の出力を得る:( –

+0

あなたのファイルにはキャリッジキャラクターがないことを確認してもらえますか?上記のようなサンプル入力と出力を投稿してください。コマンドを実行し、親切にすべての詳細を同じに投稿します。 – RavinderSingh13

関連する問題