【问题标题】:Repeat-replace fields in single lines within text files重复替换文本文件中单行中的字段
【发布时间】:2011-01-16 02:18:52
【问题描述】:

我正在尝试通过以下方式批量替换许多文本文件(实际上是 *.dlf)的每一行中的分隔字段:

xxx|xxx|a|xxx|DD|..

xxx|xxx|a|xxx|a|...等

cygwin 或其他 DOS shell 中是否有我可以用来执行此操作的语法,或者甚至是可以提供服务的应用程序?用 Excel 和 Word 间接处理很烦人。

【问题讨论】:

    标签: cygwin


    【解决方案1】:

    您可以使用gawk 将特定字段替换为新值:

    sh-3.2$ echo "xxx|xxx|a|xxx|DD|.." | gawk -v FS="|" -v OFS="|" '{$5="a"; print}'
    xxx|xxx|a|xxx|a|..
    

    【讨论】:

    • 谢谢,所以 GAWK 将使用此语法为每个文件中的每一行将字段 5 中的“DD”替换为字段 3 中的“a”?这是一个修订字段,几乎每行都会更改。
    • 抱歉,不清楚这就是您想要的。使用$5=$3 而不是$5="a"。至于如何使用它,它的过滤器cat oldfile.txt | filter >newfile.txt && mv newfile.txt oldfile.txt 实际上会替换一个文件。
    • 耶;到目前为止,它适用于单个文件。我可以批量处理每个文件夹中包含文本文件的大量子文件夹吗?
    猜你喜欢
    • 2012-12-01
    • 2014-06-28
    • 2014-08-24
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2013-05-13
    • 2013-04-05
    • 1970-01-01
    相关资源
    最近更新 更多