2016-01-20 61 views
0

替換在一個循環中的文本我有一個文件abc.csv其是如下; -打開一個文件>在UNIX

sn,test,control 
1,file1,file2 
2,file3,file4 

我還有一個配置文件text.cfg如下: -

model.input1 = /usr/bin/file1 
model.input2 = /usr/bin/file2 

現在我想更換文件1和文件2分別 文件3和文件4,然後 file5和file6等,,直到abc.csv文件耗盡

我對這個問題的企圖是: -

IFS ="," 

while read NUM TEST CONTROL 


X="" 
Y="" 

do 
    echo "Serial Number :$NUM" 
    echo "Test File :$TEST" 
    echo "Control File:$CONTROL" 

    sed -i -e 's/$A/$B/g' text.cfg 

    X = $TEST 
    Y = $CONTROL 

done < abc.csv 

的輸出中應該有新的配置文件如下: -

這是test1.cfg

model.input1 = /usr/bin/file1 
model.input2 = /usr/bin/file2 

那麼第二個文件應該是test2.cfg

model.input1 = /usr/bin/file3 
model.input2 = /usr/bin/file4 

等等。

+0

如果您還向我們展示了您期望從輸入中顯示的確切輸出,那將會非常有用。請[編輯]你的問題,這樣做。 –

+0

我不明白你的要求。 – 5gon12eder

+0

我需要通過循環遍歷abc.csv文件中的每一行並更改abc.csv文件行中給出的文件名,通過行 – ch1nmay

回答

0
awk -F, 'NR>1{i = 0; while(++i < NF){print "model.input"i" = /usr/bin/"$(i+1) >> "test"$1".cfg"} }' File 

輸出:

AMD$ cat test1.cfg 
model.input1 = /usr/bin/file1 
model.input2 = /usr/bin/file2 
AMD$ cat test2.cfg 
model.input1 = /usr/bin/file3 
model.input2 = /usr/bin/file4 

希望這有助於。

+0

謝謝!這是我需要的! – ch1nmay