2008-10-30 179 views
0

如果我有一個由新行分隔的文本文件中的數據列表,有沒有辦法將一些東西附加到開始,然後是數據,然後再附加其他東西然後再附加數據?重新排列數據

EG a field X will become new X = X;

你可以用bash或sed來做到這一點,或者只是像unix這樣的工具嗎?

編輯:

我試圖讓 「ITEM_SITE_ID:{$行[ 'ITEM_SITE_ID']}
」。

我使用這行的awk '{打印 「\」 「$ 1」{:$行[' $ 1' ]}
「}」

而且我得到這個「ITEM_SITE_ID {:$行[]}

我錯過了什麼?

回答

1

我覺得問題是你的單引號沒有正確轉義,這實際上是不可能的。

隨着SED:

sed "s/\(.*\)/\1 = \1;/" 

或者你的情況:

sed "s/\(.*\)/\"\1 :{\$row['\1']}\"/" 

而且使用bash:

while read line 
do 
    echo "\"$line :{\$row['$line']}\"" 
done 

而實際上,你可以使用bashes $ '' 做在AWK字符串:

awk $'{ print "\\"" $1 " :{$row[\'" $1 "\']}\\"" }' 
1

Awk通常是這類任務的完美工具。爲你的具體例子:

awk '{ print "new " $1 " = " $1 ";" }'