前些天把博客从WP搬到全球最大同性交友平台GitHub,今天又搬回来了(没事瞎折腾,囧),因为当前的主机2019年才到期。当时通过软件把博文转成MD文件不彻底,故有用到Linux命令来批量修改文件名字以及内容,现记录一下:
- 将文件名中的日期替换为当天的日期:
date1=20160113 date2=`date "+%Y%m%d"` for f in *$date1*; do mv "$f" "${f/$date1/$date2}"; done
- 将文件名中的下划线替换为空格:
for f in *_*; do mv "$f" "${f//_/ }"; done
- 批量修改文件内容:
sed -i "1,5 s/^categories/tags/g" `grep -rl categories` perl -pi -e "s/^categories/tags/g" `grep -rl categories`
其中的${PARAMETER/?/PATTERN/STRING}
是用来查找和替换的,PARAMETER
后面跟一个斜杠时只替换PATTERN
首次匹配的字符,PARAMETER
后面跟两个斜杠时替换所有PATTERN
匹配的字符,这个和sed后面的/g
功能一样,全局匹配替换。sed
后面的-i
表示直接修改原文件,1,5
表示只对前5行的内容进行查找和替换的操作。