【问题标题】: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[]}

我错过了什么?

【问题讨论】:

    标签: bash sed unix


    【解决方案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 ";" }'
      

      【讨论】:

        猜你喜欢
        • 2017-10-17
        • 2022-06-12
        • 2017-08-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-12
        • 1970-01-01
        • 2018-11-27
        相关资源
        最近更新 更多