码迷,mamicode.com
首页 > 其他好文 > 详细

特殊符号、管道符命令:cut、sort、uniq、wc、tee、tr、split等命令

时间:2018-01-13 00:29:08      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:home   psswd   数字   manage   使用   head   用户   mon   use   

特殊符号
  • *任意个任意字符
  • ?任意一个字符
  • #注释字符
  • \脱义字符
  • |管道符
  • $变量前缀, !$组合,正则里面表示行尾
  • ;多条命令写到一行,用分号分隔
  • ~用户家目录,后面正则表达式中表示匹配符
  • &放到命令后面,会把命令丢到后台
  • > >> 2> 2>> &>:输出重定向、追加重定向、错误输出重定向、错误追加重定向、不区分重定向;
  • 【】方括号表示指定字符中的一个,【0-9】,【a-zA-Z】,【abc】;
  • ||和&& 判断语句,用于命令之间;(|| 或的意思 ls 1.txt || ls 2.txt 如果执行ls 1.txt成功 就不会执行ls 2.txt)
    (&& 是and的意思 ls 1.txt && ls 2.txt 表示 如果ls 1.txt 执行成功 才会执行 ls 2.txt)

实验1:||符号;
当ls 1.txt这个条件生效,那么就忽略ls 2.txt这个命令;
当ls 3.txt 这个条件不生效,那么执行后面ls 2.txt这条命令;

[root@shu-test test]# ls
1.txt  2.txt  a.txt
[root@shu-test test]# ls 1.txt || ls 2.txt
1.txt
[root@shu-test test]# ls 3.txt || ls 2.txt
ls: 无法访问3.txt: 没有那个文件或目录
2.txt
[root@shu-test test]#

实验2:&&and命令;
当第一条命令错误,全部命令失效;
当第一条命令成功,再来执行第二条命令;

[root@shu-test test]# ls 3.txt && ls 2.txt
ls: 无法访问3.txt: 没有那个文件或目录
[root@shu-test test]# ls 1.txt && ls 2.txt
1.txt
2.txt
[root@shu-test test]#

管道符命令

cut命令:

作用:截取文件部分显示,-d分隔符 -f指定段数 -c指定第几个字符;
显示passwd文档的前两段,截取:之前的1段;
cat /etc/passwd |head -2 |cut -d ":" -f 1

[root@shu-test ~]# cat /etc/passwd |head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@shu-test ~]# cat /etc/passwd |head -2 |cut -d ":" -f 1
root
bin
[root@shu-test ~]#

显示passwd文档前两段,截取:之前的1到2段显示出来;
cat /etc/passwd |head -2 |cut -d ":" -f 1,2

[root@shu-test test]# cat /etc/passwd |head -2 |cut -d ":" -f 1,2
root:x
bin:x
[root@shu-test test]#
显示passwd文档   前两段    截取:之前的    1-3段
cat /etc/passwd |head -2 |cut -d ":" -f 1-3
[root@shu-test test]# cat /etc/passwd |head -2 |cut -d ":" -f 1-3
root:x:0
bin:x:1
[root@shu-test test]#

sort命令:

作用:排序显示;

  • -n:以数字排序 ;
  • -r:反序;
  • -t: 分隔符;
  • -kn1/-kn1,n2:指定范围;

将psswd 按ACISS编码排序从a-z顺序;
sort /etc/passwd

[root@shu-test ~]# sort /etc/passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
halt:x:7:0:halt:/sbin:/sbin/halt
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
polkitd:x:999:997:User for polkitd:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
user005:x:1008:1005::/home/user005:/bin/bash
user007:x:1007:1005::/home/user007:/bin/bash
user01:x:1000:1000::/home/user01:/bin/bash
user02:x:1001:1001::/home/user02:/bin/bash
[root@shu-test ~]#

wc命令

作用:统计文件行数、字数;

  • -l: 统计文件行数;
  • -m:统计字符数(换行符也会计算在内)
  • -w:统计词 (空白作为分隔)

统计/etc/passwd 有多少行
wc -l /etc/passwd

[root@shu-test ~]# wc -l /etc/passwd
23 /etc/passwd
[root@shu-test ~]#

uniq命令

作用:去重复(去重复内容只限于相邻段),配合sort排序然后再去重复,-c 统计行数;
实验1:不排序去重复;

[root@shu-test abc]# cat 2.txt
abc
222
abc
111
111
[root@shu-test abc]# uniq 2.txt
abc
222
abc
111
[root@shu-test abc]#

实验2:排序去重复;

[root@shu-test abc]# cat 2.txt
abc
222
abc
111
111
[root@shu-test abc]# sort 2.txt | uniq
111
222
abc
[root@shu-test abc]#

tee命令

作用:相当于>命令,也就是输出重定向,但是可以显示;
参数-a:追加;
比如:cat 2.txt >a.txt 是不显示将2.txt文件输出到a.txt;

[root@shu-test abc]# cat 2.txt > a.txt
[root@shu-test abc]# cat a.txt
abc
222
abc
111
111
[root@shu-test abc]#

实验1:使用tee命令,输出到a.txt;
cat 2.txt | tee a.txt

[root@shu-test abc]# cat 2.txt | tee a.txt
abc
222
abc
111
111
[root@shu-test abc]# cat a.txt
abc
222
abc
111
111
[root@shu-test abc]#

实验2:追加到a.txt文件中;

[root@shu-test abc]# cat a.txt
abc
222
abc
111
111
[root@shu-test abc]# cat 2.txt | tee -a a.txt
abc
222
abc
111
111
[root@shu-test abc]# cat a.txt
abc
222
abc
111
111
abc
222
abc
111
111
[root@shu-test abc]#

tr命令

作用:替换命令;
实验:将输出的字符串abclinux中的abc替换为123并输出;

[root@shu-test test]# echo "abclinux"
abclinux
[root@shu-test test]# echo "abclinux" | tr ‘abc‘ ‘123‘
123linux
[root@shu-test test]#

split命令

作用:切割命令,将一个大的文件分割成多个文件;-b大小(默认单位字节),-l 行数;
实验1:按大小来分割文件;
split -b 100k a.txt

[root@shu-test test]# ls
a.txt  xaa  xab
[root@shu-test test]# wc -l a.txt
6359 a.txt
[root@shu-test test]# rm -rf x*
[root@shu-test test]# ls
a.txt
[root@shu-test test]# split -b 100k a.txt
[root@shu-test test]# ls
a.txt  xaa  xab  xac
[root@shu-test test]# du -sh *
244K    a.txt
100K    xaa
100K    xab
44K    xac
[root@shu-test test]#

实验2:按行数来分割文件;
split -l 1000 a.txt

[root@shu-test test]# ls
a.txt
[root@shu-test test]# wc -l a.txt
6359 a.txt
[root@shu-test test]# split -l 1000 a.txt
[root@shu-test test]# ls
a.txt  xaa  xab  xac  xad  xae  xaf  xag
[root@shu-test test]# wc -l *
  6359 a.txt
  1000 xaa
  1000 xab
  1000 xac
  1000 xad
  1000 xae
  1000 xaf
   359 xag
12718 总用量
[root@shu-test test]#

特殊符号、管道符命令:cut、sort、uniq、wc、tee、tr、split等命令

标签:home   psswd   数字   manage   使用   head   用户   mon   use   

原文地址:http://blog.51cto.com/shuzonglu/2060451

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!