1.
由于UNIX 鼓励使用文本型数据,因此系统上最常见的数据存储类型就是文本了,在文本文件下,一行表示一条记录。这里要介绍的是在一行内用来分隔字段的两种惯例。首先是直接使用空白(whitespace ) ,也就是用空格键(space) 或制表(tab) 键:
本例中,# 字符起始的行表示注释,可忽略( 这是一般的习惯,注释行的功能相当好用, 不过软件必须可忽略这样的行才行) 。各字段都以任意长度的空格(space) 或制表(Tab) 字符隔开。第二种惯例是使用特定的定界符来分隔字段,例如冒号:
两种惯例都有其优缺点。使用空白作为分隔时,字段内容就最好不要有空白( 若你使用制表字符(Tab) 作分隔,字段里有空格是不会有问题的,但这么做视觉上会混淆,因为你在看文件时,很难马上分辨出它们的不同)
2. cut
2.1. c ut
2.1.1 . cut
cut –c list [file … ]
cut –f list [–d delim] [file … ]
2.1.2 .cut
-d : 后接分隔符,与-f
-f : 根据分隔符将一条记录分成数段。
-c :以字符为单位取出固定的字符范围。
2.2. c ut
1. 将PATH
2. 承上题,找出第三个和第五个路径
[root@local]# echo $PATH | cut –d ‘:’ -f 3,5
/sbin /usr/local/bin
3. 将export 输出的稍息,取出地12
[root@local]#export
declare -x HISTSIZE>“100D”
declare -x INPUTRC=“/etc/inputrc”
declace -x KDEDIR=“/uar”
其他省略
[root@local]#export | cut –c 12-
HISTSIZE>“100D”
INPUTRC=“/etc/inputrc”
KDEDIR=“/uar”
其他省略
3. join
3.1. join
3.1.1 . join
join –c [option … ] file1 file2
3.1.2 . join
-t : join 默认以空格符分隔数据,并且比较“第一个字段“的数据。如果两个文件相同,则将两个数据连成一行,且第一个字段放在第一个
-i : 忽略大小写。
-1 :这个是数字1
-2 : 表示“第二个文件要用那个字段来分析“的意思。
3.2. join
1. 将/etc/passwd 和/etc/shadow
[root@local]# join –t ‘:’/etc/passwd /etc/shadow
bin:x:1:1:bin:/bin:/sbin/nologin::12959:0:99999:7:::
daemon:x:2:2:daemon:/sbin:/sbin/nologin::12959:0:99999:7:::
admin:x:3:4:admin:/var/admin:/sbin/nologin:*:12959:0:99999:7:::
2. 将/etc/passwd 第四个字段GID 和/etc/group
[root@local]# join –t ‘:’-1 4 /etc/passwd -2 3 /etc/group
0:root:x:0:root:/root:/bin/bash:root:x:
1:bin:x:1:bin:/bin:/sbin/nologin:bin:x:root,bin,daemon
2:daemon:x:2:daemon:/sbin:/sbin/nologin:daemon:x:root,bin,daemon
4:admin:x:3:admin:/var/admin:/sbin/nologin:admin:x:root,admin,daemon
# 原来/etc/passwd
root:x:0:0:root:/root:/bin/bash
# 原来/etc/group
root:x:0:
# 第一个文件的第四栏和第二个文件的第三栏取出放在了最前面
4. awk
4.1. awk
4.1.1 . awk
awk [-F fs] [-v var=value …] ‘program’ [- -] [var=vaule][file(s)]
awk [-F fs] [-v var=value …] –f programfile [- -] [var=vaule] [file(s)]
4.1.2 . awk
– : 是特殊选项,指出awk
-F : 用来重新定义默认字段分隔符
-v :必须放在命令行上直接给定的任何程序之前,它们会在程序启动之前以及处理任何文件之前生效。
-f :指定程序从文件读入。
4.2. awk
4.3. awk
1. 打印/etc/passwd
[root@local]# awk –F :‘{ print \(1,\)NF}’
root /bin/bash
bin /sbin/nologin
daemon /sbin/nologin
admin /sbin/nologin
2. 打印/etc/passwd 第一个和第后一个字段中间以
[root@local~]# awk –F :-v ‘OFS= ’‘{ print \(1,\)5}’
root/bin/bash
bin/sbin/nologin
daemon/sbin/nologin
admin/sbin/nologin

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/180115.html