重新排列数据

时间:2008-10-30 14:31:51

标签: bash sed unix

如果我有一个由新行分隔的文本文件中的数据列表,是否有办法将某些内容添加到开头,然后是数据,然后再添加其他内容然后再添加数据?

EG字段X将成为新的X = X;

你能用bash或sed这样做,还是只用unix等unix工具?

编辑:

我想获得“ITEM_SITE_ID:{$ row ['ITEM_SITE_ID']}”“。

我正在使用此行awk'{print“\”“$ 1”{:$ row ['$ 1']}
“}}

我得到了这个“ITEM_SITE_ID {:$ row []}

我错过了什么?

2 个答案:

答案 0 :(得分:1)

Awk通常是完成此类任务的完美工具。对于您的具体示例:

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

答案 1 :(得分: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 "\']}\\"" }'