我对 linux 编程有点陌生,我已经搜索了每个人,但我没有找到任何问题的答案,我有一个文件可以调用它,config.txt/.ini;我的问题是:无论如何有一个脚本,在文件中找到一些文本,如果它找到搜索文本做一些事情;
举个例子:
- 搜索:“我的/文本/我的文本”
- 并添加:';' 到行的开头。
- 甚至删除该行。
您是否考虑过查看以下工具:
awk
sed
perl
python
这一切都可以很容易地做到这一点。
awk 可能是其中最纤细的(因此也是最快的):
awk '{sub(/root/, "yoda"); print}'
将用每行上root
的字符串替换正则表达式的第一个匹配项。yoda
由于您的问题含糊不清,并且您没有定义什么样的脚本,并且因为我目前正在学习 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()