我正在尝试自动替换文件中的某些版权字符串。字符串是以下格式
"Copyright (C) 2004-2008 by"
Run Code Online (Sandbox Code Playgroud)
但是年份可以不同。我尝试在所有文件中找到此行,并用当前年份替换去年。
grep -r ' * Copyright (C) [0-9]\{4\}-[0-9]\{4\} by.' *
Run Code Online (Sandbox Code Playgroud)
现在如何用2013替换最后一个群组?(想从管道使用)
grep不做替换。您可以尝试sed,例如:
sed 's/Copyright (C) \([0-9]\{4\}\)-[0-9]\{4\} by/Copyright (C) \1-2013 by/'
Run Code Online (Sandbox Code Playgroud)
或如肯特(Kent)所述:
sed 's/\(Copyright (C) [0-9]\{4\}\)-[0-9]\{4\} by/\1-2013 by/'
Run Code Online (Sandbox Code Playgroud)
或ssed:
ssed -R 's/(?<=Copyright \(C\) )([0-9]{4})-[0-9]{4}(?= by)/\1-2013/'
Run Code Online (Sandbox Code Playgroud)