[Shell] awk分隔符处理文件

时间:2021-01-15 21:27:25

如:以逗号分割,打印2,3列

1.分隔符

1.1 用-F指定一个或者多个

cat  test.csv  | awk -F","  '{print $2, $3}'   #以逗号为

1.2 BEGIN块+FS来处理,OFS表示输出的分隔符

awk 'BEGIN{FS=","; OFS=";" }{ print $1,$2}'   test.csv

cat  test.csv  | awk -F "[,;]"  '{print $2,$3}' 

2. BEGIN 和END修饰块

BEGIN 和END修饰块,表示只处理一次

3. 截取字符串

3.1 截取字符变量的前8位
常用 substr($str:begin:len)

1.expr substr "$a" 1 8
2.echo $a|awk '{print substr(,1,8)}'
3.echo $a|cut -c1-8
4.echo $
5.expr $a : '\(.\\).*'
6.echo $a|dd bs=1 count=8 2>/dev/null