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

本文涉及的产品
转发路由器TR,750小时连接 100GB跨地域
简介:

*代表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
相关文章
常用文本内容命令(tr cut sort uniq)
常用文本内容命令(tr cut sort uniq)
|
6月前
|
存储 算法 Unix
【Shell 命令集合 文件管理】Linux 拆分文件 split命令使用教程
【Shell 命令集合 文件管理】Linux 拆分文件 split命令使用教程
171 0
|
Linux Windows
一秒学会文件内容浏览,cut命令使用,uniq命令使用,sort命令,tr
一、文件内容浏览 a.cat查看/etc/passwd文件内容,且输出时带行号
251 0
|
Linux Shell
Linux中常用的文本处理命令(echo、sort、uniq、tr、cut、split、eval)(下)
1、echo命令——输出 echo 命令主要用来显示字符串信息。
252 0
|
1月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
84 1
|
24天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
48 2
6种方法打造出色的Shell脚本
|
11天前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
31 1
|
15天前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
37 2
|
29天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
48 6