Linux文本处理

2018-10-18  本文已影响0人  liyin_d64b
上期回顾:
cut -d -f 1-3 /ect/passwd
文本排序sort
$ sort /etc/fstab 
debugfs              /sys/kernel/debug    debugfs    noauto                0 0
devpts               /dev/pts             devpts     mode=0620,gid=5       0 0
/dev/vda1            /                    ext3       noatime,acl,user_xattr 1 1
/dev/vdb1 /public ext3 defaults 0 0
/dev/vdc /home ext3 defaults 0 0
#/dev/vdf /trainee ext3 defaults 0 0
/mnt/10GiB.swap swap swap defaults 0 0
proc                 /proc                proc       defaults              0 0
sysfs                /sys                 sysfs      noauto                0 0
$ sort sor.tdt #数字开头排序
214124
2423534
587
6
645
65
679
76
78
8
867
9
$ sort -n sor.tdt  #数字大小排序
6
8
9
65
76
78
587
645
679
867
214124
2423534
$ sort -r sor.tdt #-r reverse
9
867
8
78
76
679
65
645
6
587
2423534
214124
$ sort -n -r sor.tdt # reverse and numeric
2423534
214124
867
679
645
587
78
76
65
9
8
6
sort -t #字段分隔符
sort -k #以那个字段排序

sort -t: -k3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
jmzeng:x:1000:1000:,,,:/home/jmzeng:/bin/bash
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
spguo:x:1001:1003:,,,:/home/spguo:/bin/bash
fzhao:x:1002:1004:,,,:/home/fzhao:/bin/bash
zgxu:x:1003:1005:,,,:/home/zgxu:/bin/bash
myshen:x:1004:1006:,,,:/home/myshen:/bin/bash
syqu:x:1006:1008:,,,:/home/syqu:/bin/bash

$ sort -t: -k4 -n /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin

sort -u #排序后相同的行只显示一次
sort - f #排序时忽略大小写(不区分大小写)

$ uniq -d sor.tdt 
123
$ uniq -D sor.tdt 
123
123
$ uniq -c sor.tdt 
      1 214124
      1 23
      2 123
      1 2423534
      1 645
      1 65
      1 76
      1 587
      1 6
      1 867
      1 8
      1 679
      1 78
      1 9

文本统计

wc (word count)
$ wc sor.tdt 
15 15 57 sor.tdt #15行,15个单词,57个字符

  $ wc -c sor.tdt 
57 sor.tdt
$ wc -l sor.tdt 
15 sor.tdt
$ wc -w sor.tdt 
15 sor.tdt
$ wc -m sor.tdt 
57 sor.tdt
$ wc -L sor.tdt #最长的一行包括多少字符
7 sor.tdt

字符处理命令

tr #转换或删除字符

$ tr 'ab' 'AB' < /etc/passwd
root:x:0:0:root:/root:/Bin/BAsh
dAemon:x:1:1:dAemon:/usr/sBin:/usr/sBin/nologin
Bin:x:2:2:Bin:/Bin:/usr/sBin/nologin
sys:x:3:3:sys:/dev:/usr/sBin/nologin
sync:x:4:65534:sync:/Bin:/Bin/sync
gAmes:x:5:60:gAmes:/usr/gAmes:/usr/sBin/nologin
mAn:x:6:12:mAn:/vAr/cAche/mAn:/usr/sBin/nologin
lp:x:7:7:lp:/vAr/spool/lpd:/usr/sBin/nologin

 tr 'a-z' 'A-Z' < /etc/passwd
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH
DAEMON:X:1:1:DAEMON:/USR/SBIN:/USR/SBIN/NOLOGIN
BIN:X:2:2:BIN:/BIN:/USR/SBIN/NOLOGIN
SYS:X:3:3:SYS:/DEV:/USR/SBIN/NOLOGIN
SYNC:X:4:65534:SYNC:/BIN:/BIN/SYNC
GAMES:X:5:60:GAMES:/USR/GAMES:/USR/SBIN/NOLOGIN

tr -d '2' < ./sor.tdt 
1414
3
13
13
43534
645
65
76
587
6
867
8
679
78
9
$ cat sor.tdt 
214124
23
123
123
2423534
645
65
76
587
6
867
8
679
78
9



bash

yli@biotrainee:~$ pstree
systemd─┬─accounts-daemon─┬─{gdbus}
        │                 └─{gmain}
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───2*[{barad_agent}]
        ├─bash───shiny-server─┬─4*[{V8 WorkerThread}]
        │                     └─5*[{shiny-server}]
        ├─2*[bash───bash───samtools───3*[{samtools}]]
        ├─cron
        ├─dbus-daemon
        ├─dhclient
        ├─dockerd─┬─docker-containe───30*[{docker-containe}]
        │         └─38*[{dockerd}]
        ├─frps───33*[{frps}]
        ├─2*[frps───34*[{frps}]]
        ├─2*[iscsid]
        ├─2*[lsz]
        ├─lvmetad
        ├─lxcfs───7*[{lxcfs}]
        ├─mdadm
        ├─multipathd───4*[{multipathd}]
        ├─mysqld───28*[{mysqld}]
        ├─nginx───16*[nginx]
        ├─28*[perl]
        ├─php-fpm7.0───2*[php-fpm7.0]
        ├─polkitd─┬─{gdbus}
        │         └─{gmain}
        ├─rserver───3*[{rserver}]
        ├─rsyslogd─┬─{in:imklog}
        │          ├─{in:imuxsock}
        │          └─{rs:main Q:Reg}
        ├─10*[sftp-server]
        ├─sgagent───{sgagent}
        ├─snapd───30*[{snapd}]
        ├─sshd─┬─sshd───sshd───bash───su───bash
        │      ├─3*[sshd───sshd───sftp-server]
        │      ├─6*[sshd───sshd]
        │      ├─sshd───sshd───bash───vi
        │      ├─3*[sshd───sshd───bash]
        │      ├─sshd───sshd───bash─┬─10*[sh───cufflinks───4*[{cufflinks}]]
        │      │                    └─6*[sh───cufflinks]
        │      └─sshd───sshd───sh───bash───bash───bash───bash───bash───bash───pstree
        ├─11*[systemd───(sd-pam)]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-timesyn───{sd-resolve}
        └─systemd-udevd
yli@biotrainee:~$ ls
readme.txt  sor.tdt
yli@biotrainee:~$ sudo apt updata
[sudo] password for yli: 
yli is not in the sudoers file.  This incident will be reported.
yli@biotrainee:~$ ls
readme.txt  sor.tdt
yli@biotrainee:~$ exit
exit
yli@biotrainee:~$ pstree
systemd─┬─accounts-daemon─┬─{gdbus}
        │                 └─{gmain}
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───2*[{barad_agent}]
        ├─bash───shiny-server─┬─4*[{V8 WorkerThread}]
        │                     └─5*[{shiny-server}]
        ├─2*[bash───bash───samtools───3*[{samtools}]]
        ├─cron
        ├─dbus-daemon
        ├─dhclient
        ├─dockerd─┬─docker-containe───31*[{docker-containe}]
        │         └─38*[{dockerd}]
        ├─frps───33*[{frps}]
        ├─2*[frps───34*[{frps}]]
        ├─2*[iscsid]
        ├─2*[lsz]
        ├─lvmetad
        ├─lxcfs───7*[{lxcfs}]
        ├─mdadm
        ├─multipathd───4*[{multipathd}]
        ├─mysqld───28*[{mysqld}]
        ├─nginx───16*[nginx]
        ├─28*[perl]
        ├─php-fpm7.0───2*[php-fpm7.0]
        ├─polkitd─┬─{gdbus}
        │         └─{gmain}
        ├─rserver───3*[{rserver}]
        ├─rsyslogd─┬─{in:imklog}
        │          ├─{in:imuxsock}
        │          └─{rs:main Q:Reg}
        ├─10*[sftp-server]
        ├─sgagent───{sgagent}
        ├─snapd───30*[{snapd}]
        ├─sshd─┬─sshd───sshd───bash───su───bash
        │      ├─6*[sshd───sshd]
        │      ├─3*[sshd───sshd───sftp-server]
        │      ├─sshd───sshd───bash───vi
        │      ├─4*[sshd───sshd───bash]
        │      ├─sshd───sshd───bash─┬─11*[sh───cufflinks───4*[{cufflinks}]]
        │      │                    ├─3*[sh───cufflinks]
        │      │                    └─2*[sh───cufflinks───3*[{cufflinks}]]
        │      └─sshd───sshd───sh───bash───bash───bash───bash───bash───pstree
        ├─11*[systemd───(sd-pam)]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-timesyn───{sd-resolve}
        └─systemd-udevd
yli@biotrainee:~$ exit
exit
yli@biotrainee:~$ bash
yli@biotrainee:~$ exit
exit
yli@biotrainee:~$ exit
exit
yli@biotrainee:~$ exit
exit
yli@biotrainee:~$ exit
exit
yli@biotrainee:~$ pstree
systemd─┬─accounts-daemon─┬─{gdbus}
        │                 └─{gmain}
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───2*[{barad_agent}]
        ├─bash───shiny-server─┬─4*[{V8 WorkerThread}]
        │                     └─5*[{shiny-server}]
        ├─2*[bash───bash───samtools───3*[{samtools}]]
        ├─cron
        ├─dbus-daemon
        ├─dhclient
        ├─dockerd─┬─docker-containe───31*[{docker-containe}]
        │         └─38*[{dockerd}]
        ├─frps───33*[{frps}]
        ├─2*[frps───34*[{frps}]]
        ├─2*[iscsid]
        ├─2*[lsz]
        ├─lvmetad
        ├─lxcfs───7*[{lxcfs}]
        ├─mdadm
        ├─multipathd───4*[{multipathd}]
        ├─mysqld───28*[{mysqld}]
        ├─nginx───16*[nginx]
        ├─28*[perl]
        ├─php-fpm7.0───2*[php-fpm7.0]
        ├─polkitd─┬─{gdbus}
        │         └─{gmain}
        ├─rserver───3*[{rserver}]
        ├─rsyslogd─┬─{in:imklog}
        │          ├─{in:imuxsock}
        │          └─{rs:main Q:Reg}
        ├─10*[sftp-server]
        ├─sgagent───{sgagent}
        ├─snapd───30*[{snapd}]
        ├─sshd─┬─sshd───sshd───bash───su───bash
        │      ├─3*[sshd───sshd───sftp-server]
        │      ├─6*[sshd───sshd]
        │      ├─sshd───sshd───bash───vi
        │      ├─4*[sshd───sshd───bash]
        │      ├─sshd───sshd───bash─┬─14*[sh───cufflinks───4*[{cufflinks}]]
        │      │                    ├─sh───cufflinks
        │      │                    └─sh───cufflinks───2*[{cufflinks}]
        │      └─sshd───sshd───sh───bash───pstree
        ├─11*[systemd───(sd-pam)]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-timesyn───{sd-resolve}
        └─systemd-udevd
yli@biotrainee:~$ exit
exit
$ pstree
systemd─┬─accounts-daemon─┬─{gdbus}
        │                 └─{gmain}
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───2*[{barad_agent}]
        ├─bash───shiny-server─┬─4*[{V8 WorkerThread}]
        │                     └─5*[{shiny-server}]
        ├─2*[bash───bash───samtools───3*[{samtools}]]
        ├─cron
        ├─dbus-daemon
        ├─dhclient
        ├─dockerd─┬─docker-containe───31*[{docker-containe}]
        │         └─38*[{dockerd}]
        ├─frps───33*[{frps}]
        ├─2*[frps───34*[{frps}]]
        ├─2*[iscsid]
        ├─2*[lsz]
        ├─lvmetad
        ├─lxcfs───7*[{lxcfs}]
        ├─mdadm
        ├─multipathd───4*[{multipathd}]
        ├─mysqld───28*[{mysqld}]
        ├─nginx───16*[nginx]
        ├─28*[perl]
        ├─php-fpm7.0───2*[php-fpm7.0]
        ├─polkitd─┬─{gdbus}
        │         └─{gmain}
        ├─rserver───3*[{rserver}]
        ├─rsyslogd─┬─{in:imklog}
        │          ├─{in:imuxsock}
        │          └─{rs:main Q:Reg}
        ├─10*[sftp-server]
        ├─sgagent───{sgagent}
        ├─snapd───30*[{snapd}]
        ├─sshd─┬─sshd───sshd───bash───su───bash
        │      ├─3*[sshd───sshd───sftp-server]
        │      ├─6*[sshd───sshd]
        │      ├─sshd───sshd───bash───vi
        │      ├─4*[sshd───sshd───bash]
        │      ├─sshd───sshd───bash─┬─2*[sh───cufflinks───3*[{cufflinks}]]
        │      │                    ├─13*[sh───cufflinks───4*[{cufflinks}]]
        │      │                    └─sh───cufflinks
        │      └─sshd───sshd───sh───pstree
        ├─11*[systemd───(sd-pam)]
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-timesyn───{sd-resolve}
        └─systemd-udevd
$ exit
logout
Connection closing...Socket close.

Connection closed by foreign host.

Disconnected from remote host(新建会话 (2)) at 19:54:20.

Type `help' to learn how to use Xshell prompt.
[c:\~]$ 

Connecting to 118.126.114.209:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

WARNING! The remote SSH server rejected X11 forwarding request.
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-91-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage
New release '18.04.1 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Thu Oct 18 19:52:27 2018 from 110.187.211.131
$ 





上一篇下一篇

猜你喜欢

热点阅读