sed命令操作文件简单实用

sed命令操作文件简单实用

参数:

-i :直接修改读取的文件内容,而不是输出到终端。

a :追加
d :删除
i :插入
s :替换

一般格式:

sed -i '/匹配对应的行/增删改命令 参数' $file_name
'' 中是操作代码块
// 两个斜杠中间是正则匹配。

tips:
1、针对某一行的操作,都可以使用 ‘,’ 进行分割,表示从第x-y 行。
2、在 sed 操作块中使用shell变量,用‘“”’单引号加双引号引用。如,'"$line"'
3、对文件进行的这几个操作,其实都是有规律的。sed -i '/匹配正则/(a/d/i/s) 参数' $file_name。a 的参数就是追加的内容。d不需要参数,会将匹配到的内容删除掉。i的参数是插入的内容。s的参数是/old_string/new_string/ 类似这样的格式。
4、sed -i '/匹配正则/(a/d/i/s) 参数' $file_name。这个表达式中,‘匹配正则’ 的部分,可以用来换成行号。

具体使用

1、sed 命令 替换 条目。
line="hello"
encrypt_line="olleh"
file_name="./test.txt"

#表示1-3行
line_num="1,3" 


#把文件中的hello都替换成olleh.
sed -i 's/'"$line"'/'"$encrypt_line"'/' $file_name

#匹配hello所在的行,把hello 换成olleh。建议所有的文件操作都是用这种格式,方便记忆。
sed -i '/'"$line"'/s/'"$line"'/'"$encrypt_line"'/' $file_name

#在1-3行行首添加#,可以用来注释某些行。
sed -i ''"$line_num"'s/^/#/' $file_name
2、使用sed 命令追加条目
line="hello"
encrypt_line="olleh"
file_name="./test.txt"

#表示第3行,也可以使用 1,3 表示第 1-3 行
line_num="3";

#在第 line_num 行之后,添加olleh,建议所有的文件操作都是用这种格式,方便记忆。
sed -i ''"$line_num"'a '"$encrypt_line"'' $file_name

#匹配hel开头的行,在后面追加elloh
sed -i '/hel*/a '"$encrypt_line"'' $file_name
3、使用sed 命令删除条目
line="hello"
encrypt_line="olleh"
file_name="./test.txt"
line_num="3";

#删除 enrypt_line 所在的行。
sed -i '/'"$encrypt_line"'/d' $file_name


#删除 不是encrypt line 所在的行
sed -i '/'"$encrypt_line"'/!d' $file_name

#删除某行
sed -i ''"$line_num"'d' $file_name
4、使用sed 命令进行插入。
line="hello"
encrypt_line="olleh"
file_name="./test.txt"
line_num="3";

#在 encrypt_line 前面插入一行 line
sed -i '/'"$line"'/i '"$encrypt_line"'' $file_name

#在某行之前插入
sed -i ''"$line_num"'i '"$encrypt_line"'' $file_name
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值