linux 正则 mac,Mac 上简单使用 Sed

有时我们需要通过脚本简单修改某个文件中的某个值时,可以用到 Sed 命令的。

一、安装

如果已安装请忽略,没有安装需要 install 下

brew install gnu-sed

二、简单使用

注意: Linux Mac 下使用是略有不同的,此处以 Mac 使用的。

举例子,直接替换

$ cat test.txt

12345

aaa

CCC

$ sed -i "" "s/12345/Hello/" test.txt

$ cat test.txt

Hello

aaa

分析命令 sed -i "" "s/12345/Hello/" test.txt

-i 直接操作文件并不需要备份文件,如果需要备分则使用 -i "benfen"

s 代表 substitue 即替换

12345 要被代替的文字

Hello 要代替的文字

test.txt 对应修改的文件

sed 全名为 stream editor,流编辑器,用程序的方式来编辑文本,功能相当的强大,此处简单记录下

修改文件要用-i, 另外基本操作码如下,以及熟悉简单的正则表达式就OK

s 替换

c change line

d 删除line

i 插入line

a 追加line

2-1、删 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

2-2、增 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

其他规则如删除差不多,就是要注意 \ 要换行的,好麻烦

2-3、查 p

$ sed -n "p" test.txt // 输出

输出所有

sed -n 'p' test.txt

输出第二行

sed -n '2p' test.txt 2 代表所有

输出前缀为 1 的行

sed -n '/^1.*/p' test.txt

2-4、改 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 代表第四行

以上我们修改一些简单的文件,暂时是没问题啦的,再配合正则表达式 多尝试下,基本OK

只是要注意下 Mac 和 Linux Sed 命令规则很不同的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值