sed 学习 3
$cat test (1) (4) (2) (5) (3) (6) $cat test | awk '{print $2}' | sed "s/\(.*\)/\1/g" (4) (5) (6) #没有办法去掉括弧
-----------------
我查了两本书,都没有sed -i选项,很坑啊
------------------
sed -i命令详解 - Ev_zhk - 博客园 (cnblogs.com)
sed -i命令详解及入门攻略_夫君子之行,静以修身,俭以养德,非淡泊无以明志,非宁静无以致远.-CSDN博客
一个错误尝试,不知道为什么
echo 'begin apple 1 2 3 orange 4 5 6' > ttt1
echo 'banana 1 2 3
pinapple 1 2 3' > op
sed -i '/apple/d /orange/d $r op' ttt1
cat ttt1
输出:
begin
去掉$可以,也就是$定位出错
echo 'begin apple 1 2 3 orange 4 5 6' > ttt1 echo 'banana 1 2 3 pinapple 1 2 3' > op sed -i '/apple/d /orange/d r op' ttt1 cat ttt1 输出: begin
banana 1 2 3
pinapple 1 2 3
分开可以
echo 'begin
apple 1 2 3
orange 4 5 6' > ttt1
echo 'banana 1 2 3
pinapple 1 2 3' > op
sed -i '/apple/d /orange/d' ttt1
sed -i '$r op' ttt1
cat ttt1
输出:
begin
banana 1 2 3
pinapple 1 2 3
但是ttt1前必须有东西,下面这样也不行
echo 'apple 1 2 3
orange 4 5 6' > ttt1
echo ' banana 1 2 3
pinapple 1 2 3' > op
sed -i '/apple/d /orange/d' ttt1 sed -i 'r op' ttt1
cat ttt1
输出无
-----------------------------
噢,我又来了
之前的实现适用于当个文件的修改
合起来是
sed '/config_name/d $r /config_file' data.txt_always > data.txt
但目前我需要在原文件直接作修改,因为批量重定向时无法修改名字
-------------------------------------------------------
场景:配置文件一项配置一行,现在通过脚本,使得指定配置项的内容做修改
我觉得应该是清除当前的指定配置项,使用模式匹配
sed '/config_name/d' data.txt
在最后一行的下一行写入包含配置项的文件
sed '$r configAdd' data.txt
posted on 2021-05-13 15:29 toughcactus 阅读(40) 评论(0) 编辑 收藏 举报