知乎專欄 | 多維度架構 | 微信號 netkiller-ebook | QQ群:128659835 請註明“讀者” |
列格式化
下面舉一個例子 ,mount 執行結果
[www@netkiller www.netkiller.cn]$ mount sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,size=1931400k,nr_inodes=482850,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/xvda1 on / type ext4 (rw,relatime,nobarrier,data=ordered) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) mqueue on /dev/mqueue type mqueue (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) /dev/xvdb1 on /opt type btrfs (rw,relatime,ssd,space_cache) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime) none on /proc/xen type xenfs (rw,relatime) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=361892k,mode=700) /dev/xvdb1 on /var/ftp type btrfs (rw,relatime,ssd,space_cache)
使用 column 格式化後
[www@netkiller www.netkiller.cn]$ mount | column -t sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime) proc on /proc type proc (rw,nosuid,nodev,noexec,relatime) devtmpfs on /dev type devtmpfs (rw,nosuid,size=1931400k,nr_inodes=482850,mode=755) securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime) tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev) devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000) tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755) tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755) cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd) pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime) cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event) cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpuacct,cpu) cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices) cgroup on /sys/fs/cgroup/net_cls type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls) cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio) cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb) cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer) cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory) cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset) configfs on /sys/kernel/config type configfs (rw,relatime) /dev/xvda1 on / type ext4 (rw,relatime,nobarrier,data=ordered) systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=300,minproto=5,maxproto=5,direct) mqueue on /dev/mqueue type mqueue (rw,relatime) debugfs on /sys/kernel/debug type debugfs (rw,relatime) hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime) /dev/xvdb1 on /opt type btrfs (rw,relatime,ssd,space_cache) binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,relatime) none on /proc/xen type xenfs (rw,relatime) tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=361892k,mode=700) /dev/xvdb1 on /var/ftp type btrfs (rw,relatime,ssd,space_cache)
$ (printf "PERM LINKS OWNER GROUP SIZE MONTH DAY HH:MM/YEAR NAME\n" ; ls -l | sed 1d) | column -t $ cat /etc/passwd |tr ':' ' ' | column -t $ cat /etc/passwd |tr ':' ' ' | column -t | colrm 20 20
# vim test aaaaa bbbbb ccccc ddddd 1111 2222 3333 444 # paste -s test aaaaa bbbbb ccccc ddddd 1111 2222 3333 444
join 命令就是一個根據關鍵字合併數據檔案的命令(join lines of two files on a common field),類似於資料庫中兩張表關聯查詢.
內連接(inner join) 格式:join <FILE1> <FILE2> 左連接(left join, 左外連接, left outer join) 格式:join -a1 <FILE1> <FILE2> 右連接(right join, 右外連接,right outer join) 格式:join -a2 <FILE1> <FILE2> 全連接(full join, 全外連接, full outer join) 格式:join -a1 -a2 <FILE1> <FILE2> // 注意 使用 join 來合併兩個檔案的數據行時, 這兩個檔案必須要被正確排序. 1) 差集 [root@test23 ~]# cat a.txt | sort > file1; cat b.txt | sort > file2; join -v 1 file1 file2 1.1.1.1 3.3.3.3 [root@test23 ~]# cat a.txt | sort > file1; cat b.txt | sort > file2; join -v 2 file1 file2 4.4.4.4 a.b.c.d 2) 並集 [root@test23 ~]# cat a.txt | sort > file1; cat b.txt | sort > file2; join -a1 -a2 file1 file2 1.1.1.1 1.2.3.4 2.2.2.2 3.3.3.3 4.4.4.4 a.b.c.d 3) 交集 // 不指定任何參數的情況下使用join命令,相當於資料庫中的內連接,(關鍵字,預設用第一列[使用空格作為分割符]作為關鍵字)不匹配的行不會輸出. [root@test23 ~]# cat a.txt | sort > file1; cat b.txt | sort > file2; join file1 file2 1.2.3.4 2.2.2.2 join 其他用法 -t <CHAR> 指定分隔符,比如: -t ':' 使用冒號作為分隔符,預設的分隔符是空白. -o <FILENO.FIELDNO> ... 指定輸出欄位 其中FILENO=1表示第一個檔案,FILENO=2表示第二個檔案,FIELDNO表示欄位序號,從1開始編號.預設會全部輸出,但關鍵字列只輸出一次.