很实用的Linux 系统运维常用命令及常识(超实用)

2019-09-23 09:17:29丽君

sed 用法
-n 输出由编辑指令控制(取消默认的输出,必须与编辑指令一起配合)
-i 直接对文件操作
-e 多重编辑
p 打印
d 删除
s 替换
g 配合s 全部替换
i 行前插入
a 行后插入
r 读
y 转换
q 退出
(..) 保存..作为标签1(1)
& 代表查找的串内容
* 前导符
.* 匹配任意多个字符
模式空间(两行两行处理)
N 将第二行追加到第一行将换行符n 替换空极为一行
n 将第二行覆盖到第一行
h 把模式空间里的行拷贝到暂存空间
H 把模式空间里的行追加到暂存空间
g 用暂存空间的内容替换模式空间的行
G 把暂存空间的内容追加到模式空间的行后
x 将暂存空间的内容于模式空间里的当前行互换
! 对所选行以外的所有行应用命令。
注意:暂存空间里默认存储一个空行。
sed 命令替换并打印出替换行( -i 改变文本)
sed -n -e "{s/文本(正则表达式)/替换的文本/p}"
打印并删除正则表达式的那部分内容
sed -n -e "{s/^ *[0-9]*//p}"
删除含关键的一行
sed -i "/^$f/d" a
直接对文本替换
sed -i "s/=/:/" c
找到pearls 开头在行尾加jcui
sed -i "/^pearls/s/$/jcui/" ab.txt
标签(保存(mar)作为标签1)
sed -n 's/(mar)got/1ianne/p' 文件
echo "margot"|sed -n 's/(mar).*(t)/12/p'
sed -e 's/^([a-zA-Z]+) ([a-zA-Z]+)(.*)/2 13/g' file
在以[0-9][0-9]结尾的行后加5
sed 's/[0-9][0-9]$/&5' 文件
打印从第5 行到以no 开头行之间的所有行
sed -n '5,/^no/p' 文件
修改west 和east 之间的所有行,在结尾处加*VACA*
sed '/west/,/east/s/$/*VACA*/' 文件
多重编辑(先删除1-3 行,在将1 替换成2)
sed -e '1,3d' -e 's/1/2/' 文件
找到含suan 的行,在后面加上读入的文件内容
sed '/suan/r 读入文件' 文件
找到含no 的行,写入到指定文件中
sed -n '/no/w 写入文件' 文件
取出第一组数字,并且忽略掉开头的0
sed 's/[^1-9]*([0-9]+).*/1/'
打印1 和3 之间的行
sed '/1/,/3/p' file
取出指定行
sed -n '1p' 文件
在第5 行之前插入行
sed '5iaaa' file
在第5 行之后抽入行
sed '5aaaa' file
在匹配行前插入一行
echo a|sed -e '/a/ib'
在匹配行后插入一行
echo a|sed -e '/a/ab'
echo a|sed 's/a/&nb/g'
引用外部变量
sed -n ''$a',10p'
sed -n ""$a",10p"
取用户家目录(匹配不为/的字符和匹配:到结尾的字符全部删除)
sed -n '{s/^[^/]*//;s/:.*//;p}' /etc/passwd
将换行符转换为换行
echo abcdnabcde |sed 's/n/@/g' |tr '@' 'n'
删除掉@后面所有字符,和空行
sed -e 's/@.*//g' -e '/^$/d'
将几行合并成一行