sed 编辑命令对照表
把 /etc/passwd 文件赋值到当前路径下,进行操作
cp /etc/passwd ./ cat -n passwd
删除 passwd 文件的第一行
sed -i ‘1d‘ passwd
删除 1-3 行
sed -i ‘1,3d‘ passwd
删除不能登录的用户,即 /sbin/nologin
sed -i ‘/\/sbin\/nologin/d‘ passwd
删除以mail开头一直到以 ftp开头的行
sed -i ‘/^mail/,/^ftp/d‘ passwd
在/bin/bash 行后面追加一句话 This is user which can login to system
sed -i ‘/\/bin\/bash/a This is user which can login to system‘ passwd
行前追加 在 root 和 nginx之间所有行之前追加 AAAAAAAAAAAAAAAAAAAA
sed -i ‘/^root/,/^nginx/i AAAAAAAAAAAAAAAAAAAA‘ passwd
查找passwd文件中所有root的行,读取 list 的内容追加到其后面
cat list
sed -i ‘/root/r list‘ passwd
在passwd文件中将匹配到的 /bin/bash 行写入到 /tmp/user_login.txt 文件中
sed ‘/\/bin\/bash/w /tmp/user_login.txt‘ passwd
修改:
查询:
删除:
增加:
修改:
其他编辑命令:
什么是反向引用
在file中搜寻以1开头,然后跟两个任意字符,以e结尾的字符串
sed "s/1..e/&r/g" file
和上面实现一样的功能,使用\1代表搜寻到的字符串
sed "s/\(1..e\)/\1r/g" file
上面两种方式实现了一样的功能,分别使用&和\1引用前面匹配到的整个字符串 两者区别在于&只能表示匹配到的完整字符串,只能引用整个字符串:而\1可以使用()对匹配到的字符串进行二次操作
例如:如果我们仅想要替换匹配到的字符串的一部分,name必须使用\1这种方式,不能使用&
sed中引用变量时注意事项:
原文:https://www.cnblogs.com/crazymagic/p/11117363.html