• shell特殊符号cut命令

特殊符号

*  通配符,任意个任意字符

? 任意一个字符

# 注释字符

\  脱义字符

c=\$a\$b

echo  $c

| 管道符

cat  1.txt |less

cat 1.txt |more

cut 截取字符串

显示头2行

cat  /etc/passwd  |head -2

切割":"第一段   cut  -d ":" -f 1

切割两断:cut  -d ":" -f 1,2

把etc/passwd 下前两行,以冒号切割1到三段

cat  /etc/passwd  |head -2  |cut  -d  ":" -f   1-3

root@localhost:~# cat  /etc/passwd |head -2 |cut -d ":" -f 1,2

root:x

bin:x

root@localhost:~# cat  /etc/passwd |head -2 |cut -d ":" -f 1-2

root:x

bin:x

root@localhost:~# cat  /etc/passwd |head -2 |cut -d ":" -f 1-3

root:x:0

bin:x:1

cut  指定第几个字符:

cut  -c  4

root@localhost:~# cat /etc/passwd |head -2 |cut -c 4

t

:

  • sort_wc_uniq命令

sort 排序   -n 以数字排序  -r 反序

sort /etc/passwd  按照首字母排序

取文件内容前10行写到1.txt

head  /etc/passwd  > 1.txt

vim 1.txt 编辑,写入几个特殊符号 * 《》 <>?

sort 1.txt

默认是特殊符号排在前面,然后是数字,字母先后顺序,*号排在后面

sort  -n 1.txt

会以数字排序,字母和特殊符号会认为是0

sort  -nr 1.txt 反序排序  最大的在前面

sort   -t   -kn1/-kn2 分隔符 指定第几段排序

wc  -l 统计行数

wc  -m 统计字符数

root@localhost:~# wc -l 1.txt

19 1.txt

root@localhost:~# wc -m 1.txt

432 1.txt

root@localhost:~# vim 2.txt

输入

abc

123

:wq

root@localhost:~# wc -m 2.txt

8 2.txt

root@localhost:~# cat -A 2.txt

abc$

123$

每一行都有一个换行符 $

wc   -w  2.txt 统计单词数,是以空白字符区分的

root@localhost:~# wc  -w 2.txt

2 2.txt

uniq (unique) 2.txt 去重复

root@localhost:~# uniq 3.txt

1

222

333

4

56476

root@localhost:~# cat 3.txt

1

1

1

222

333

4

4

56476

先排序,再统计。

统计出现重复的次数:

sort  2.txt |uniq  -c

root@localhost:~# sort 3.txt |uniq  -c

3 1

1 222

1 333

2 4

1 56476

  • tee_tr_split命令

管道|tee 和>类似,重定向的同时还在屏幕上显示

作用: 重定向并打印到屏幕上

root@localhost:~# sort 3.txt |uniq -c > a.txt

root@localhost:~# cat a.txt

3 1

1 222

1 333

2 4

1 56476

root@localhost:~# sort 3.txt |uniq -c |tee b.txt

3 1

1 222

1 333

2 4

1 56476

root@localhost:~# cat b.txt

3 1

1 222

1 333

2 4

1 56476

root@localhost:~#

">"  与 “|tee”都可以写入文件

清空a.txt

>a.txt

>>追加 ,|tee -a 也可以追加

|tee  -a 追加

root@localhost:~# sort 3.txt |uniq -c |tee -a b.txt

tr替换字符,tr ‘a’'b', 大小写替换tr'[a-z]' ‘[A-Z]’

把xb改成大写的XB

root@localhost:~# echo "xiaobo" |tr '[xb]' '[XB]'

XiaoBo

单独把x改成X

root@localhost:~# echo "xiaobo" |tr 'x' 'X'

Xiaobo

把小写字母改成大写字母

root@localhost:~# echo "xiaobo" |tr '[a-z]' '[A-Z]'

XIAOBO

把所有的字母改成1

root@localhost:~# echo "xiaobo"  |tr '[a-z]' '1'

111111

当日志文件800G的话,读取困难,可以切割

把etc下所有conf文件追加到a.txt文件里去

root@localhost:~# find  /etc/ -type f  -name "*conf" -exec cat {} >> a.txt \;

root@localhost:~# du -sh  a.txt

1.1M a.txt

切割文件a.txt ,每个文件100K

root@localhost:~# du -sh a.txt

464K a.txt

root@localhost:~# split -b 100k a.txt

root@localhost:~# ls

a.txt  xaa  xab  xac  xad  xae

指定文件名前缀

root@localhost:~# rm -f x*

root@localhost:~# split -b 100K a.txt abc

root@localhost:~# ls

abcaa  abcab  abcac  abcad  abcae  a.txt

切割每1000行一个文件

root@localhost:~# split -l 1000 a.txt

root@localhost:~# ls

a.txt  xaa  xab  xac  xad  xae  xaf  xag  xah  xai  xaj  xak  xal  xam

root@localhost:~# wc -l a.txt

12764 a.txt

  • shell特殊符号

$ 变量前缀,!$组合,正则里面表示行尾

; 多条命令写到一行,用分号分割

~用户家目录,后面正则表达式表示匹配符

&放到命令后面,会把命令丢到后台

写入重定向> , 追加重定向>>           &>(错误重定向和正确 重定向输出)

[] 指定字符中的一个,[0-9],[a-zA-Z],[ABC]

|| 和 &&,用于命令之间

[root@localhost ~]# for i in `seq 1 10`

> do

> echo $i

> done

1

2

3

4

5

6

7

8

9

10

多条命令用分号分割

[root@localhost ~]# for i in `seq 1 10`;do echo $i ; done;

1

2

3

4

5

6

7

8

9

10

|| 表示或,如果前面的命令执行成功,后面的命令不执行;如果前面的命令执行不成功,继续执行后面的命令

[root@localhost ~]# ls la.txt||wc -l 1.txt

ls: 无法访问la.txt: 没有那个文件或目录

0 1.txt

[root@localhost ~]# wc -l 1.txt ||ls la.txt

0 1.txt

&& 如果前面的命令成功,就会执行后面的命令;如果前面的命令执行失败,就不会执行后面的命令。

有假就不会执行后面的。

[root@localhost ~]# ls la.txt  && wc -l 1.txt

ls: 无法访问la.txt: 没有那个文件或目录

[root@localhost ~]# wc -l 1.txt  && ls la.txt

0 1.txt

ls: 无法访问la.txt: 没有那个文件或目录

判断目录是否存在

[-d xiaobo]  || mkdir xiaobo

如果xiaobo目录不存在,就会创建目录。

如果目录存在,就不会创建目录。

shell特殊符号cut命令 sort_wc_uniq命令 tee_tr_split命令 shell特殊符号的更多相关文章

  1. shell特殊符号及cut、sort_wc_uniq、tee_tr_split命令 使用介绍

    第6周第2次课(4月24日) 课程内容: 8.10 shell特殊符号cut命令8.11 sort_wc_uniq命令8.12 tee_tr_split命令8.13 shell特殊符号下 扩展1. s ...

  2. 特殊符号 sort_wc_uniq命令 tee_tr_split命令

     *     任意个 任意字符 ?    任意一个字符  #     注释字符   \     转意符   |     管道符  (之前有说过) cut  命令: cut  -d "&quo ...

  3. 【Linux命令】文本文件编辑命令10个(cat、more、less、head、tail、tr、wc、stat、cut、diff)

    目录 cat查看文档 more可分页查看文档 less相比较more功能更强大 head查看文档的前N行 tail查看文档的后N行或试试刷新查看 tr替换文本字符 wc统计文本行数 stat查看文档存 ...

  4. linux shell 管道命令(pipe)使用及与shell重定向区别

    管道命令操作符是:”|”,它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandarderror 信息没有直接处理能力.然后,传递给下一个命令 ...

  5. shell中的内建命令, 函数和外部命令

    转自shell中的内建命令, 函数和外部命令 Shell识别三种基本命令:内建命令.Shell函数以及外部命令: (1)内建命令就是由Shell本身所执行的命令.    有些命令是由于其必要性才内建的 ...

  6. sed命令详解 vim高级技巧 shell编程上

    第1章 sed命令详解 1.1 查找固定的某一行 1.1.1 awk命令方法 [root@znix ~]# awk '!/oldboy/' person.txt 102,zhangyao,CTO 10 ...

  7. Shell编程(脚本)的经常使用命令和语句

    一些经常使用的Shell编程(脚本)命令和语句,能够满足一般需求. 接收到的命令參数: 參数个数: $# 參数值: 命令本身:$0 第一个參数:$1 第二个參数:$2 -- 退出命令: exit ec ...

  8. 【转】shell中的内建命令, 函数和外部命令

    原文:http://www.cnblogs.com/xkfz007/archive/2011/10/13/2209571.html linux命令有内部命令和外部命令之分.内部命令实际上是shell程 ...

  9. shell编程之算术扩展(引号、命令替换、算术扩展)

    1.单引号 .双引号.反引号的区别 单引号:忽略所有特殊字符 双引号:忽略大部分特殊字符($  `等字符除外) [root@tlinux shell]# echo '*' * [root@tlinux ...

随机推荐

  1. Eigen教程(6)

    整理下Eigen库的教程,参考:http://eigen.tuxfamily.org/dox/index.html 高级初始化方法 本篇介绍几种高级的矩阵初始化方法,重点介绍逗号初始化和特殊矩阵(单位 ...

  2. 【转】亲测plsql Developer配置免安装oralce客户端步骤

    原文地址:http://blog.csdn.net/bushy0401/article/details/11869461 再次用到Oracle了,机器上面也没有oracle客户端,还得去网上下载,直接 ...

  3. 2017 码云最火爆开源项目 TOP 50,你都用过哪些

    本文转自:https://share.html5.qq.com/fx/u?r=JdjvzwC 2017 年度码云热门项目排行榜 TOP 50 出炉啦!我们根据所有开源项目在码云的用户关注度.活跃度.访 ...

  4. shell将字符串分隔成数组

    #!/bin/bash a="hello,world,nice,to,meet,you" #要将$a分割开,先存储旧的分隔符 OLD_IFS="$IFS" #设 ...

  5. PCL学习八叉树

    建立空间索引在点云数据处理中有着广泛的应用,常见的空间索引一般 是自顶而下逐级划分空间的各种空间索引结构,比较有代表性的包括BSP树,KD树,KDB树,R树,四叉树,八叉树等索引结构,而这些结构中,K ...

  6. Java设计模式(9)适配器模式(Adapter模式)

    适配器模式定义:将两个不兼容的类纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份. 为何使用适配器模式 我们经常碰到要将两个没有关系的类组合在一起使用 ...

  7. 定制应用Repeater 、ListView的模版

    若干年前有个需求:客户可在管理后台给每个新闻内容栏目指定新闻的显示样式,有的可以显示新闻时间,有的则不需要.于是就有了动态模版的应用.记得当时是用 LoadControl 的方式然后 Controls ...

  8. android将应用中图片保存到系统相册并显示

    我应用到的场景是程序中在视频通讯时截图,将截图保存到本地相册中 /*** @param bmp 获取的bitmap数据 * @param picName 自定义的图片名*/ public static ...

  9. js之队列01

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. 7款开源ERP系统比较

    [网络转载] 现在有许多企业将ERP项目,在企 业中没有实施好,都归咎于软件产品不好.其实,这只是你们的借口.若想要将ERP软件真正与企业融合一体,首先得考虑企业的自身情况,再去选择适合的 ERP软件 ...