g:递归
sed -i “s/原字符串/新字符串/g” `grep 原字符串 -rl 所在目录`
sed -i '/匹配字符串/s/替换源字符串/替换目标字符串/g' filename
linux命令行地址转windows地址
pwd |sed 's/\//\\/g'
pc格式转unix格式
sed -i 's/\r//' Makefile
find ./* -name "*" |xargs sed -i 's/\r//'
vi下字符串替换
g:递归
:%s/xx/mm/g
cat dos2unix
#!/bin/sh
# TODO: use getopt to avoid parsing options as filenames,
# and to support -- and --help
[ $# -ne 0 ] && DASH_I=-i
sed $DASH_I -e 's/\r$//' "$@"
cat unix2dos
#!/bin/sh
# TODO: use getopt to avoid parsing options as filenames,
# and to support -- and --help
[ $# -ne 0 ] && DASH_I=-i
sed $DASH_I -e 's/$/\r/' "$@"
-e选项允许在同一行里执行多条命令
sed -e '1,5d' -e 's/test/check/' file
上面sed表达式的第一条命令删除1至5行,第二条命令用check替换test。命令的执行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。
行首匹配^
sed -i -e '$a \127.0.1.1\tbuildroot' -e '/^127.0.1.1/d' /etc/hosts
行末匹配$