shell特殊符号,cut、sort、wc、uniq、tee、tr、split命令

简介:

*代表0个或多个任意字符

[root@localhost ~]# ls *txt

11.txt  1.txt  22.txt  2.txt  aa.txt  a.txt  


?只代表一个任意字符

不管是数字还是字母,只要是一个字符的都能匹配出来

[root@localhost ~]# ls ?.txt

1.txt  2.txt  a.txt  b.txt

[root@localhost ~]# ls ?txt

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


注释符号#,这个符号后面的内容都会被忽略

[root@localhost ~]# a=123 #456

[root@localhost ~]# echo $a

123


脱义字符 \,这个字符会将后面的特殊符号(如*)还原为普通字符。

[root@localhost ~]# ls -ld test*

drwxr-xr-x. 2 root root 6 11月 17 14:06 test

[root@localhost ~]# ls -ld test\*

ls: 无法访问test*: 没有那个文件或目录


管道符 | ,它的作用是将前面命令的输出作为后面命令的输入。并不是所有命令都可以用在管道符中,常用命令:cat、less、head、tail、grep、cut、sort、wc、uniq、tr、split、sed、awk等。

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

1


cut命令

cut命令用来截取某一个字段。

格式为:cut -d‘分隔符 ’-[fc]n,n为数字。

-d:后面跟分隔符,分隔符要用单引号引起来。

-f:后面接的是第几个区块

-c:后面接的是第几个字符

(-c不需要和-f,-d需要-f)


[root@localhost ~]# head -5 /etc/passwd | cut -d ':' -f 1-4

root:x:0:0

bin:x:1:1

daemon:x:2:2

adm:x:3:4

lp:x:4:7

-d后的冒号为分隔符,-f 1-4表示截取1-4段


[root@localhost ~]# head -5 /etc/passwd | cut -c 1-4

root

bin:

daem

adm:

lp:x

-c后可以是1个数字,也可以是区间1-4,还可以是多个数字n1,n2,n3(用逗号隔开)。

[root@localhost ~]# head -5 /etc/passwd | cut -c 1,6,8

rx0

b::

dnx

a::

l47



sort命令

sort命令用作排序。

格式为:sort -[-t 分隔符] [-kn1,n2] [-nru] n1,n2为数字。

-t:后面跟分割字符,作用和cut -d一样。

-n:表示使用纯数字排序。

-r:表示反向排序。

-u:表示去除重复。

-kn1,n2:表示n1-n2区间排序,也可以只写-kn1。


如果sort不加任何选项,则凶首字符向后一次按ASCII码值进行比较,最后将它们按升序输出。

[root@localhost ~]# head -n 5 /etc/passwd | sort

adm:x:3:4:adm:/var/adm:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

root:x:0:0:root:/root:/bin/bash


-t选项后跟分隔符,-k选项后跟一个数字表示对第几个区域的字符串排序,-n选项则表示使用纯数字排序。

[root@localhost ~]# head -n 5 /etc/passwd | sort -t ':' -k 3 -n #将第三段的字符用纯数字排序。

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin


-k选项后面跟数字n1,n2表示对n1和n2这个区域内的字符串排序,-r反向排序。

[root@localhost ~]# head -n 5 /etc/passwd | sort -t ':' -k 3,5 -r #将第三至五段区间内的字符串进行反向排序。

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

root:x:0:0:root:/root:/bin/bash



wc命令

wc命令用于统计文档的行数、字符数、或词数。

-l 统计行数

-w 统计词数

-m 统计字符数

wc后不跟任何参数直接跟文档则会把行数、词数、字符数依次输出。

[root@localhost ~]# wc /etc/passwd

 24   44 1128 /etc/passwd

[root@localhost ~]# wc -l /etc/passwd

24 /etc/passwd

[root@localhost ~]# wc -w /etc/passwd

44 /etc/passwd

[root@localhost ~]# wc -m /etc/passwd

1128 /etc/passwd



uniq命令

uniq命令用来删除重复行,常用选项-c,表示统计重复的行数,并把行数写在前面。

使用uniq前,必须要先给文件排序(sort),否则不管用。

855ac6ab2e1b7e8db6ad0f155bb02c2e.png


tee命令

tee命令后根文件名,起作用类似于输出重定向(>),它还能把写入后面所跟文件时,还显示在屏幕上。常用于管道符 | 后。

-a:向文件中重定向时使用追加模式

3e236bf86520261a3bba15cb3b8c4e62.png

使用-a参数。追加。

ad9ba12937b87690a89b473af8769537.png


tr命令

tr命令用于替换字符,常用来处理文档中出现的特殊符号。

-d 表示删除某个字符。


[root@localhost ~]# echo "huangdalinux" | tr 'a' 'A'

huAngdAlinux  #将字符串中的a替换成A

[root@localhost ~]# echo "huangdalinux" | tr 'an' 'AN'

huANgdAliNux  #将字符串中的a和n替换成A和N

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

HUANGDALINUX  #将字符串中的小写字母替换成大写字母


使用-d参数,删除字符串中的某个字符

[root@localhost ~]# echo "huangdalinux" | tr -d 'a'

hungdlinux

[root@localhost ~]# echo "huangdalinux" | tr -d 'a,u'

hngdlinx

s

plit命令

split命令用于切割文档,常用选项为-b和-l

-b:表示依据大小来分割文档,默认单位为byte。

6036ba9d73824195df9e8c7bed891411.png

6f31d9ae1d8988b865fe011d9b6bc64f.png

spacer.gif

-l:表示依据行数来分割文档。

spacer.gif4df51084bee1ea5427abec3cdb16fe3b.png

指定目标文件名。

spacer.gif529a4e34f89593dd20803917b09f926a.png


特殊符号$,用作变量前面的标识符。


特殊符号;。如果想在一行中运行两个或两个以上的命令,需要再命令之间加符号;。


特殊符号~。表示用户的家目录,root用户为/root,普通用户为/home/用户名/


特殊符号&。可以把一条命令放在后台执行。接在命令后。


输出重定向>,输出重定向追加>>,错误重定向2>,错误重定向追加2>>, 正确和错误输出都重定向&>.正确和错误输出都重定向追加&>>


中括号[],中括号内为字符组合,代表字符组合中的任意一个,可以是一个范围。


特殊符号&&和||

command1;command2

使用;时,不管command1是否执行成功,都会执行command2。

command1&&command2

使用&&时,只有command1执行成功,才会执行command2。

command1||command2

使用||时,command1执行成功后则command2不执行,否则执行command2,即command1和command2中总有一条命令会执行。




本文转自 豆渣锅 51CTO博客,原文链接:http://blog.51cto.com/754599082/1982863
相关文章
|
Shell 数据安全/隐私保护
shell中的通配符 熟悉grep、cut、sort等小工具和shell中的通配符的使用
shell中的通配符 熟悉grep、cut、sort等小工具和shell中的通配符的使用
226 0
|
搜索推荐 算法 Java
sort-06-shell sort 希尔排序算法详解
这是一个关于排序算法的系列文章摘要。文章汇总了各种排序算法,包括冒泡排序、快速排序、选择排序、堆排序、插入排序、希尔排序、归并排序、计数排序、桶排序以及大文件外部排序。特别地,希尔排序是一种改进的插入排序,通过使用不同的步长对元素进行分组排序,以提高效率。算法最终以较小的步长进行排序,接近线性时间复杂度。文章还提供了Java代码实现,并举例说明了希尔排序的过程。所有内容可在开源项目[https://github.com/houbb/sort](https://github.com/houbb/sort)中找到。
|
搜索推荐 算法 Shell
【Shell 命令集合 文档编辑 】Linux 排序命令 sort命令使用指南
【Shell 命令集合 文档编辑 】Linux 排序命令 sort命令使用指南
487 0
|
存储 Shell Linux
【Shell 命令集合 文档编辑】Linux 删除连续重复的行 uniq 命令使用指南
【Shell 命令集合 文档编辑】Linux 删除连续重复的行 uniq 命令使用指南
491 0
|
7月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
653 9
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
675 2
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
10月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
360 60
|
7月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。