sudo sed -i 's/Asia/Shanghai/UTC/' /etc/timezone
由于/Asia/Shanghai 包含 /
不论什么字符,紧跟着s命令的都被认为是新的分隔符,所以,“#”在这里是分隔符,代替了默认的“/”分隔符。
sudo sed -i 's#Asia/Shanghai#UTC#' /etc/timezone
比如要替换的内容包含/,默认的替换语句是sudo sed -i 's/Asia/Shanghai/UTC/' /etc/timezone由于/Asia/Shanghai 包含 /s语句后的就是分割符,我们用#,替换默认的/分隔符就可以了sudo sed -i 's#Asia/Shanghai#UTC#' /etc/timezone...
$ cat sample.txt | sed s/apple/APPLE/
注意,sed命令仅替换字符串并输出它,但不会重写实际文件的内容
如果要将替换的内容保存在文本中,请使用重定向“>”。
当我想替换文件中的路径时,使用转义符号(\)会比较麻烦且可读性很差。
比如要将abc.sh中的/a/b/c替换成/d/e/f,命令如下:
sed -i 's/\/a\/b\/c/\/d\/e\/f/g'
分隔符由/换成#(其他字符也可以,只要跟在s命令后面即可):
sed -i 's#/a/b/c#/d/e/f#g'
1. 普通操作可以使用冒号(:)井号(#)正斜杠(/)来作为分隔符:
eg: sed -i 's#abc#def#g' geng.file ---将文件geng中的abc替换成def
cat geng.file | sed 's/abc/def/g' ---打印文件geng,并将其中的abc替换成def
2. 对于变量做替换
sed 若是单引号括起来的,变量上得再额外加个单引号...
比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做:
sed -i "s/zhangsan/lisi/g" `grep zhangsan -rl /modules` (已验证)
解释一下:
-i 表示in...
其中,行号为需要替换的行的行号,原内容为需要替换的内容,新内容为替换后的内容,文件名为需要操作的文件名。
例如,将文件中第5行的“hello”替换成“world”,命令如下:
sed -i '5s/hello/world/g' 文件名
执行完命令后,文件中第5行的“hello”就会被替换成“world”。
The media could not be loaded, either because the server or network failed or because the format is
173658
calac: error: scala.reflect.internal.MissingRequirementError: object java.lang.Object in compiler mi
ImportError: No module named ‘tensorboardX‘
ubuntu 搭建深度学习开发环境