当前位置:  开发笔记 > 运维 > 正文

如何在文本文件中按行号替换特定行?

如何解决《如何在文本文件中按行号替换特定行?》经验,为你挑选了3个好方法。

我的linux盒子上有一个2GB的文本文件,我正试图导入我的数据库.

我遇到的问题是处理此rdf文件的脚本在一行上窒息:

mismatched tag at line 25462599, column 2, byte 1455502679:



=^

我想替换.我不能在所有行上搜索/替换,但我确实有行号,所以我希望有一些简单的方法来用新文本替换那一行.

有什么想法/建议吗?



1> chaos..:
sed -i yourfile.xml -e '25462599s!!!'



2> David Z..:
sed -i '25462599 s|||' nameoffile.txt



3> Jörg W Mitta..:

调用Unix中编辑文本文件的工具ed(相反sed,顾名思义就是流编辑器).

ed曾经被用作交互式编辑器,但它也可以轻松编写脚本.方法ed是,所有命令都采用地址参数.解决特定行的方法只是行号,更改寻址行的方法是s命令,它采用相同的正则表达式sed.所以,要改变第42行,你会写出类似的东西42s/old/new/.

这是整个命令:

FILENAME=/path/to/whereever
LINENUMBER=25462599

ed -- "${FILENAME}" <<-HERE
    ${LINENUMBER}s!!!
    w
    q
HERE

这样做的优点ed是标准化,而-i标志sed是一个专有的GNU扩展,在许多系统上都不可用.

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有