2008-10-30 137 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 ";" }'