将文本添加到特定文本行

时间:2013-05-29 22:51:20

标签: linux shell unix

我是linux编程的新手,我搜索了每一个,我找不到任何问题的答案,我有一个文件可以调用它,config.txt / .ini; 我的问题是:无论如何都有一个脚本,在文件中找到一些文本,如果它发现搜索文本做了什么;


例如:

  • 搜索:'my / text / mytext'
  • 并添加:';'到了行的开头。
  • 甚至删除该行。

2 个答案:

答案 0 :(得分:0)

您是否考虑过查看以下工具:

  • awk
  • sed
  • perl
  • python

所有人都可以相当容易地做到这一点。

Awk可能是最瘦的(也是最快的):

awk '{sub(/root/, "yoda"); print}'

将替换正则表达式root的第一个匹配项,每行包含字符串yoda

答案 1 :(得分:0)

由于您的问题含糊不清,并且您没有定义什么样的脚本,并且因为我正在学习Python,所以我花时间编写了一个python脚本来删除foo.txt中包含“mytext”的行。对的,这是可能的。还有无数其他方法可以做到。

import re

# Open the file and read all the lines into an array
f = open("foo.txt", "r")
lines = []; 
for line in f:
    lines.append(line)
f.close()

# Write all the lines back that don't match our criteria for removal
f = open("foo.txt", "w")
for line in lines:
    if re.search("mytext", line) == None:
    f.write(line)
f.close()