我正在尝试自动替换文件中的某些版权字符串。字符串格式如下
"Copyright (C) 2004-2008 by"
但年份可能不同。我尝试在所有文件中找到这一行并将去年替换为当前。
grep -r ' * Copyright (C) [0-9]\{4\}-[0-9]\{4\} by.' *
现在如何将找到的最后一组替换为 2013? (想从管道使用)
最佳答案
grep
不进行替换。你可以试试 sed
,例如:
sed 's/Copyright (C) \([0-9]\{4\}\)-[0-9]\{4\} by/Copyright (C) \1-2013 by/'
或如 Kent 所说:
sed 's/\(Copyright (C) [0-9]\{4\}\)-[0-9]\{4\} by/\1-2013 by/'
或ssed
:
ssed -R 's/(?<=Copyright \(C\) )([0-9]{4})-[0-9]{4}(?= by)/\1-2013/'
关于grep regex,替换文本文件中的特定查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16197406/