linux sed/awk/grep/cut实用技巧
Usage: sed [OPTION]... {script-only-if-no-other-script} [input-file]
OPTION:
-i , --in-place, 就地编辑文件,不在屏幕上输出


-n ,--quiet ,, 取消打印

-e , --expression=script,, 顺序多重编辑

Operate:
s --- 替换
‘s/A/B/’
g --- 全局

p -- 打印
匹配到的再打一遍

d --- 删除

a --- 追加 查找到的文本后面一行

i --- 追加, 查找到的文本前面一行

c --- 修改, 查找到的文本整行替换

正则:
^ --- 行首定位符
$ --- 行尾定位符
. --- 匹配任意除换行外的一个字符
* --- 匹配前一个字符零次或者无限次
& --- 查找后替换格式


\(xxx\) --- 匹配到的xxx以\1格式可以显示

# 分隔符,无论什么字符,紧跟在s之后,就是分隔符。

# 多行


1、awk实用
1.1、取其中一列,几列值
awk '{print $2, $6}'
1.2、取最后一列,倒数几个列,
awk '{print $NF}'
#倒数第三列
awk '{print $(NF-2)}'
1.3、过滤出数字开头的第一列
awk '$1~/^[0-9]+/{print $1}'
1.4、替换某列为给定值
awk '{$2="";print}'
awk '{$2="";print $0}'
1.5、计算某列平均值
awk '{x+=$2}END{print x/NR}'
1.6、判断某列为值时,打印某列
# 查看进程状态为"R+",打印整行
ps aux | awk '$8=="R+" {print $0}'

2、sed实用
2.1、去掉每行开头空格,去掉所有空格
| sed 's/^\s*//'
# 去掉所有空格
| sed 's/\s*//g'
3、cut实用
3.1、取每行某几个字符
# 取每行第6个字符
| cut -c 6
# 取每行第6,8个字符
| cut -c 6,8
# 取每行第6~8个字符
| cut -c 6-8

浙公网安备 33010602011771号