Mac系统下 脚本sed的简单使用
Posted 茉莲晨曦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mac系统下 脚本sed的简单使用相关的知识,希望对你有一定的参考价值。
Linux Mac 下使用是略有不同的,此处介绍 Mac系统下的 使用
- 举例子,直接替换
$ cat test.txt
111
222
333
$ sed -i "" "s/111/Hello/" test.txt
$ cat test.txt
Hello
222
分析命令 sed -i "" "s/111/Hello/" test.txt
-i
直接操作文件并不需要备份文件,如果需要备分则使用-i "benfen"
s
代表substitue
即替换111
要被代替的文字Hello
要代替的文字test.txt
对应修改的文件sed
全名为stream editor
,流编辑器,用程序的方式来编辑文本,功能相当的强大,此处简单记录下
修改文件要用-i
, 另外基本操作码如下,以及熟悉简单的正则表达式就OK
s 替换
c change line
d 删除line
i 插入line
a 追加line
删 d
$ sed -i "" "2d" test.txt 删除
- 删除第二行
sed -i "" "2d" test.txt
2 代表第二行 - 删除以什么开头的某行
sed -i "" "/^C.*/d" test.txt
/C.* 代表 以C 开头的行数,.* 是通配符 - 删除包含什么的行
sed -i "" "/2/d" test.txt
2 代表包含 2 的行 - 删除空行
sed -i "" "/^$/d" test.txt
增 a I
在 Mac 系统是原生于bsd系, 所以此处添加 和 插入有点奇怪的(a
添加下一行,i
插入上一行)
sed "$line a\\ (注意此处有空格,要在下一行添加文本)
$value(如果想换行要把"写到下一行)
" $file
sed -i "" "2 a\\
aaa
" test.txt
sed -i "" "2 i\\
xxx
" test.txt
其他规则如删除差不多,就是要注意 \\ 要换行的,好麻烦
查 p
$ sed -n "p" test.txt // 输出
- 输出所有
sed -n 'p' test.txt
- 输出第二行
sed -n '2p' test.txt
2 代表所有 - 输出前缀为 1 的行
sed -n '/^1.*/p' test.txt
改 s
$ sed -i "" "s/pattern/replace/" test.txt
$ sed -i "" "n,ms/pattern/replace/g" test.txt //指定行
- 修改某个字符串
sed -i "" "s/Hello/xxxx/" test.txt
Hello 表示要修改的文字,xxx 表示替代的 - 修改某行的指定
sed -i "" "4s/xxxx/aaa/" test.txt
4 代表第四行
shell在文本第一行和最后一行添加字符串
sed -i '1 i DELIMITER INSERTDELIMITER' filename
sed -i '1 i DELIMITER INSERTDELIMITER' filename
sed '1i 添加的内容' file #这是在第一行前添加字符串
sed '$i 添加的内容' file #这是在最后一行行前添加字符串
sed '$a添加的内容' file #这是在最后一行行后添加字符串
sed '1 a\\num1\\n\\num2\\n' /etc/passwd #在第1行后插入两行内容
sed '1 i\\num1\\n\\num2\\n' /etc/passwd #在第1行前插入两行内容
sed的简单使用就介绍到这里
以上是关于Mac系统下 脚本sed的简单使用的主要内容,如果未能解决你的问题,请参考以下文章