想必大家或多或少了解CSV把,看下图标你就知道了
了解它的特性:使用英文逗号分隔。
使用Excel打开看看,用英文逗号风格,成功!
CSV: 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。建议使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。
我们再来看看awk命令:
awk命令:
awk是行处理器: 相比较屏幕处理的优点,在处理庞大文件时不会出现内存溢出或是处理缓慢的问题,通常用来格式化文本信息
awk处理过程: 依次对每一行进行处理,然后输出
基本用法: [arvin@ArvinWoo ~]$ awk 动作 文件名
[arvin@ArvinWoo home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $0}'
This Is A Text , Arvin Woo !!
[arvin@ArvinWoo home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $1}'
This
[arvin@ArvinWoo home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $2}'
Is
[arvin@ArvinWoo home]$ echo 'This Is A Text , Arvin Woo !!' | awk '{print $1 $2 $4 $3 }'
ThisIsTextA
awk -F 指定分隔符
如:使用命令 复制/ect/passwd 文件 到当前用户目录。
以 passwd 文件为例,里面内容如下(该文件是用 ":" 进行分隔的):
[arvin@ArvinWoo ~]$ cp /etc/passwd ~/
[arvin@ArvinWoo ~]$ cd
使用awk -F 指定分隔符 提取第一个参数。
除了 $ + 数字 表示某个字段,awk还提供一些变量。
如:
NF:示当前行有多少个字段
$(NF)代表倒数第一个字段。 $(NF-1)代表倒数第二个字段。以此类推
NR:表示当前处理的是第几行
FILENAME:当前文件名
FS:字段分隔符,默认是空格和制表符。
RS:行分隔符,用于分割每一行,默认是换行符。
OFS:输出字段的分隔符,用于打印时分隔字段,默认为空格。
ORS:输出记录的分隔符,用于打印时分隔记录,默认为换行符。
OFMT:数字输出的格式,默认为%.6g。
:制表符
:换行符
awk还提供一些函数。
toupper() :把原有字符串转为大写
tolower():字符转为小写。
length():返回字符串长度。
substr():返回子字符串。
sin():正弦。
cos():余弦。
sqrt():平方根。
rand():随机数。
awk ‘条件 动作’ 文件名
awk ‘/正则表达式/ 动作’ 文件名 /Reg/ 双斜线里面是正则
[arvin@ArvinWoo ~]$ awk -F ':' '/root/ {print $1}' passwd
[arvin@ArvinWoo ~]$ awk -F ':' '/usr/ {print $1}' passwd
awk IF 语句 必须用在 “{}” 中,且条件(比较内容) 用 “()” 括起来
|
|