重新排列数据

Posted

技术标签:

【中文标题】重新排列数据【英文标题】:rearrange data 【发布时间】:2010-09-20 00:06:53 【问题描述】:

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

EG 一个字段 X 会变成新的 X = X;

您可以使用 bash 或 sed 或仅使用诸如 cut 之类的 unix 工具来执行此操作吗?

编辑:

我正在尝试获取“ITEM_SITE_ID :$row['ITEM_SITE_ID'] ”。

我正在使用这一行 awk ' print "\""$1 " :$row['$1'] " '

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

我错过了什么?

【问题讨论】:

【参考方案1】:

我认为问题在于您的单引号没有正确转义,这实际上是不可能的。

使用 sed:

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

或者在你的情况下:

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

还有 bash:

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

实际上你可以在 awk 中使用 bashes $'' 字符串来做到这一点:

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

以上是关于重新排列数据的主要内容,如果未能解决你的问题,请参考以下文章

熊猫数据框重新排列堆栈到两个值列(用于因子图)

如何重新排列数组中的数据,使两个相似的项目不相邻?

以特定方式重新排列 JSON 数据

重新排列数据

如何在没有循环的情况下重新排列分层数据?

重新排列/组合字典中的数据框