没有 -i 参数;直接输出替换后的内容到标准输出,原文件内容不变。$ cat 1.txt aaa $ sed "s#aaa#bbb#g" 1.txt bbb $ cat 1.txt aaa加 -i,同 -i''(-i后加空字符串);不输出到标准输出,直接操作原文件内容。$ cat 1.txt aaa # 或 sed -i "s#aaa#bbb#g" 1.txt $ sed -i'' "s#aaa#bbb#g" 1.txt $ cat 1.txt bbb-i[SUFFIX] 同 --in-place[=SUFFIX];不输出到标准输出,以原文件名+SUFFIX备份原文件,原文件内容为替换后的内容。$ ls 1.txt $ cat 1.txt aaa # 或 sed --in-place='.bak' "s#aaa#bbb#g" 1.txt $ sed -i'.bak' "s#aaa#bbb#g" 1.txt $ ls 1.txt 1.txt.bak $ cat 1.txt bbb $ cat 1.txt.bak aaaPS: 上面的操作原文件的部分,在实现时,操作之后只是文件名相同,底层 inode结点 不是同一个,可以用 ls -i 命令观察到。
没有
-i
参数;直接输出替换后的内容到标准输出,原文件内容不变。加
-i
,同-i''
(-i
后加空字符串);不输出到标准输出,直接操作原文件内容。-i[SUFFIX]
同--in-place[=SUFFIX]
;不输出到标准输出,以原文件名+SUFFIX备份原文件,原文件内容为替换后的内容。PS: 上面的操作原文件的部分,在实现时,操作之后只是文件名相同,底层
inode结点
不是同一个,可以用ls -i
命令观察到。