Linux?文件内容相关命令使用汇总(linux文件常用命令)全程干货

随心笔谈2年前发布 编辑
169 0
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买



目录前言cat 合并文件或查看文件内容1、简介2、语法格式3、参数说明4、实践操作more 分页显示文件内容1、简介2、语法格式3、参数说明4、实践操作less 分页显示文件内容1、简介2、语法格式3、参数说明4、实践操作head 显示文件内容头部1、简介2、语法格式3、参数说明4、实践操作tail 显示文件内容尾部1、简介2、语法格式3、参数说明4、实践操作tailf 跟踪日志文件1、简介diff 比较两个文件的不同1、简介2、语法格式4、实践操作vimdiff 可视化比较工具1、简介2、语法格式3、参数说明4、实践操作wc 统计文件的的行数、单词数或字节数1、简介2、语法格式3、参数说明4、实践操作sort 文本排序1、简介2、语法格式3、参数说明4、实践操作uniq 去除重复行1、简介2、语法格式3、参数说明4、实践操作join 按两个文件的相同字段合并1、简介2、语法格式4、实践操作paste 合并文件1、简介2、语法格式3、参数说明4、实践操作split 分割文件1、简介2、语法格式3、参数说明4、实践操作cut 从文本中提取一段文字并输出1、简介2、语法格式3、参数说明4、实践操作tr 替换或删除字符1、简介2、语法格式3、参数说明4、实践操作

上一篇中已经预告,我们这篇主要说一说Linux中文件内容查看处理相关的命令。一共16个命令,其中

标注的为重点命令,工作中用的也比较多,需要熟练掌握

cat 是concatenate 单词的缩写,或者理解成猫,”喵”一下文件内容,即显示文件内容。

可以用来显示单个文件内容 可以将几个文件连接起来一起显示 从标准输入中读取内容并显示,与重定向或追加符号配合使用 功能 举个栗子 查看文件内容 cat xiezhr.txt 查看xiezhr.txt 的内容 把多个文件合并成一个 cat xiezhr1.txt xiezhr2.txt >newxiezhr.txt 编辑或追加内容到文件尾部 cat >>xiezhr.txt<<EOF My blog is www.xiezhrspace.cn. EOF 清空文件内容 cat /dev/null >xiezhr.txt 命令可以把xiezhr.txt文件内容清空,但是文件还是存在的

cat [参数选项] [文件]

参数 参数说明 -n 从1开始对所有输出的内容按行编号 -b 和-n功能类似,但会忽略显示空白行行号 -s 当文件内容中包含多个空白行时,为了阅读更加方便,-s可以将多个空白行替换为一个空白行 -E 每一行的行尾显示$符号 -T 将Tab(制表符)字符显示为^I

① 不加参数,直接执行cat 查看文件内容

[root@xiezhr test]# cat xiezhr.txt
个人公众号:XiezhrSpace

个人博客:www.xiezhrspace.cn

个人微信号:xie_zhr

欢迎您的关注!

② 通过非交互式创建编辑xiezhr.txt 文件

上面的xiezhr.txt文件我们可以通过之前说过的touch xiezhr.txt先创建一个空白文件,

然后通过vi/vim(下一期我们会具体说一说它的用法)编辑xiezhr.txt的内容。

当然了,这个是我们之前的玩法,今天我们尝试着以一种新的方式创建xiezhr.txt文件并编辑其内容。

[root@xiezhr test]# ls
a.txt c.txt dir dir2 dir3 dir5 dir6 dir_bak movie.tar.gz test.txt tt.txt
[root@xiezhr test]# cat >xiezhr.txt<<EOF
> 个人公众号:XiezhrSpace
>
>
> 个人博客:www.xiezhrspace.cn
>
>
>
> 个人微信号:xie_zhr
>
> 欢迎您的关注!
> EOF #注意,这里需要按回车结束,EOF为标签,我们可以用其他标签替代,但是必须成对出现。
[root@xiezhr test]# ls
a.txt c.txt dir dir2 dir3 dir5 dir6 dir_bak movie.tar.gz test.txt tt.txt xiezhr.txt

③ 分别用【-n】【-b】显示上面创建的文件前的序号

[root@xiezhr test]# cat -n xiezhr.txt
1 个人公众号:XiezhrSpace
2
3
4 个人博客:www.xiezhrspace.cn
5
6
7
8 个人微信号:xie_zhr
9
10 欢迎您的关注!
[root@xiezhr test]# cat -b xiezhr.txt
1 个人公众号:XiezhrSpace

2 个人博客:www.xiezhrspace.cn

3 个人微信号:xie_zhr

4 欢迎您的关注!

④ 使用【-E】参数,在每一行末尾显示$

[root@xiezhr test]# cat -E xiezhr.txt
个人公众号:XiezhrSpace$
$
$
个人博客:www.xiezhrspace.cn$
$
$
$
个人微信号:xie_zhr$
$
欢迎您的关注!$

⑤使用 【-s】参数,把文件内容中的多个空白行变成一个空白行,方便我们阅读

[root@xiezhr test]# cat -s xiezhr.txt
个人公众号:XiezhrSpace

个人博客:www.xiezhrspace.cn

个人微信号:xie_zhr

欢迎您的关注!

上面文件中的多个空白行就变成了一个,这样当文件内容比较多的时候,阅读起来就比较友好了。

当然也可以将所有的空白行都去掉,这个我们会在后面的命令中说

⑥ 连接多个文件并显示内容

# 创建test1.txt 文件
[root@xiezhr test]# cat >test1.txt <<EOF
> 这个是test1.txt的内容
> EOF
# 创建test2.txt文件
[root@xiezhr test]# cat >test2.txt <<EOF
> 这个是test2.txt的内容
> EOF
# 将test1 test2 文件合并并输出
[root@xiezhr test]# cat test1.txt test2.txt test3.txt
这个是test1.txt的内容
这个是test2.txt的内容

more 其功能和cat 类似,cat 是将整个文件内容一次显示出来,而more一页一页的显示文件内容。我们可以根据其中文意思更多去理解,除了这页,还有更多页内容,这样是不是就记住了呢。

more [参数选项] [文件]

参数参数说明-num指定屏幕显示大小为num行+num从行号num开始显示

使用more命令打开文本之后,会进入vi交互界面。这时候我们就可以使用vi编辑器功能。那么都有些说明功能呢?

具体看下表总结

子命令说明h或?查看帮助空格键[space]向下滚动一屏b返回上一屏Enter向下显示一行/要查找的内容查找指定的文本内容=输出当前行的行号:f输出打开的文件名和行号v调用vi编辑器!调用shell并执行命令q退出more

① 不带参数查看文件

[root@xiezhr ~]# more /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
#
……由于文件内容比较多此处省略n行…..
ssh 22/udp # The Secure Shell (SSH) Protocol
telnet 23/tcp
–More–(0%)

②使用【-num】参数每页显示num行

[root@xiezhr ~]# more -5 /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10

② 使用【+num】参数,从第num行开始显示

[root@xiezhr ~]# more +666 -6
Usage: more [options] file…

Options:
-d display help instead of ring bell
-f count logical, rather than screen lines
-l suppress pause after form feed
-p do not scroll, clean screen and display text
-c do not scroll, display text and clean line ends
-u suppress underlining
-s squeeze multiple blank lines into one
-NUM specify the number of lines per screenful
+NUM display file beginning from line number NUM
+/STRING display file beginning from search string match
-V output version information and exit

lss 功能类似于more 它的中文意思是少,看似是功能更少了,其实不然。它是more的增强版,具有更多功能

less [参数选项] [文件]

参数参数说明-N显示每行的行号-m显示进度百分比-s当出现连续空行时压缩为一行显示-e文件显示到最后时自动退出,若不适用参数需要用快捷键q退出less

使用less命令打开文本之后,会进入vi交互界面。下面列出了一些常用交互式子命令

子命令说明空格键[space]向后翻一页b向前翻一页回车键[Enter]向下滚动一行↑向上滚动一行↓向下滚动一行[PgUp]向前翻一页[PgDn]向后翻一页/字符串向下搜素“字符串”?字符串向上搜素”字符串“n向后查找下一个匹配的文本N向上查找上一个匹配的文本v进入vi编辑界面!调用shell,并执行命令G移动到最后一行g移动到第一行h显示帮助界面q退出less

① 不带参数查看文件

[root@xiezhr ~]# less /etc/services
# /etc/services:
# $Id: services,v 1.55 2013/04/14 ovasik Exp $
#
# Network services, Internet style
# IANA services version: last updated 2013-04-10
……省略n行……

② 带上【-N】参数,显示行号

[root@xiezhr ~]# less -N /etc/services
1 # /etc/services:
2 # $Id: services,v 1.55 2013/04/14 ovasik Exp $
3 #
4 # Network services, Internet style
5 # IANA services version: last updated 2013-04-10
6 #
7 # Note that it is presently the policy of IANA to assign a single well-known
……此处省略n行……

head 中文意思时头部,相信你也想到了,head的功能就是显示文件内容的头部。默认显示头10行

head [参数选项] [文件]

参数选项参数说明-n显示前n行

① 不带参数,默认显示前十行

[root@xiezhr ~]# head /etc/passwd
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
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

②带上【-n】参数,显示文件前n行

[root@xiezhr ~]# head -n 5 /etc/passwd
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

tail 中文意思时尾巴,到这里你应该知道这个命令时干嘛用的了。你想的没错,就是显示文件最后10行,和命令head相反

tail [参数选项] [文件]

参数参数说明-n指定显示的行数-f实时输出文件变化后追加的数据

① 不带参数,默认显示最后10行

[root@xiezhr ~]# tail /etc/passwd
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:997:995::/var/lib/chrony:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
syslog:x:996:994::/home/syslog:/bin/false
git:x:995:993:git version control:/home/git:/bin/bash
nginx:x:994:992:Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
xiezhr:x:1001:1001::/home/xiezhr:/bin/bash

② 显示文件尾部5行

[root@xiezhr ~]# tail -n 5 /etc/passwd
syslog:x:996:994::/home/syslog:/bin/false
git:x:995:993:git version control:/home/git:/bin/bash
nginx:x:994:992:Nginx web server:/var/lib/nginx:/sbin/nologin
mysql:x:1000:1000::/home/mysql:/bin/bash
xiezhr:x:1001:1001::/home/xiezhr:/bin/bash

③ 实时跟踪日志的变化(实际工作中经常用到,需要牢靠掌握)

[root@xiezhr /]# tail -f /var/log/nginx/access.log
118.126.124.141 – – [22/Mar/2022:23:11:10 +0800] “GET /categories/%E8%A7%89%E9%86%92%E5%B9%B4%E4%BB%A3/ HTTP/1.1” 200 10085 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36” “-”
14.215.156.21 – – [22/Mar/2022:23:11:10 +0800] “GET /medias/logo.png HTTP/1.1” 200 112674 “-” “-” “-”
54.36.148.108 – – [22/Mar/2022:23:12:14 +0800] “GET / HTTP/1.1” 200 14641 “-” “Mozilla/5.0 (compatible; AhrefsBot/7.0; +http://ahrefs.com/robot/)” “-”
69.162.124.234 – – [22/Mar/2022:23:13:23 +0800] “HEAD / HTTP/1.1” 200 0 “https://www.xiezhrspace.cn” “Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/)” “-”
216.245.221.91 – – [22/Mar/2022:23:14:10 +0800] “HEAD / HTTP/1.1” 200 0 “https://www.xiezhrspace.cn” “Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/)” “-”
207.46.13.67 – – [22/Mar/2022:23:16:44 +0800] “GET /archives/f454bf8f.html HTTP/2.0” 200 15842 “-” “Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)” “-”
40.77.167.21 – – [22/Mar/2022:23:17:00 +0800] “GET /libs/share/js/social-share.min.js HTTP/2.0” 200 9195 “-” “Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)” “-”
157.55.39.183 – – [22/Mar/2022:23:17:00 +0800] “GET /libs/share/css/share.min.css HTTP/2.0” 200 1082 “-” “Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)” “-”
69.162.124.234 – – [22/Mar/2022:23:18:23 +0800] “HEAD / HTTP/1.1” 200 0 “https://www.xiezhrspace.cn” “Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/)” “-”
216.245.221.91 – – [22/Mar/2022:23:19:10 +0800] “HEAD / HTTP/1.1” 200 0 “https://www.xiezhrspace.cn” “Mozilla/5.0+(compatible; UptimeRobot/2.0; http://www.uptimerobot.com/)” “-“

tailf 功能与 tail -f 命令基本相同,记住一个即可

diff 命令用于逐行比较两个文件的不同,并输出差异内容

diff [参数选项] [文件1] [文件2]

3、参数说明

参数参数说明-y以并列的方式显示两个文件的不同-W在使用-y参数时,指定显示的宽度-c使用上下文的输出格式-u使用统一格式输出

① 不带参数,比较两个文件

[root@xiezhr test]# cat test1.txt
1
2
3
4
[root@xiezhr test]# cat test2.txt
3
4
5
[root@xiezhr test]# diff test1.txt test2.txt
1,2d0
< 1
< 2
4a3
> 5

以上结果说明

a 代表add 新加 c 代表change 改变 d 代表delete 删除 <代表第一个文件>代表第二个文件

② 带【-y -w】参数比较两个文件

[root@xiezhr test]# diff -y test1.txt test2.txt
1 <
2 <
3 3
4 4
> 5

③ 使用【-c】比较两个文件 (个人推荐使用这个,结果显示直观,一看就懂)

[root@xiezhr test]# diff -c test1.txt test2.txt
*** test1.txt 2022-03-26 10:04:38.400526014 +0800
— test2.txt 2022-03-26 10:05:50.597539120 +0800
***************
*** 1,4 ****
– 1
– 2
3
4
— 1,3 —-
3
4
+ 5

结果说明:

‘+’ 表示test2 比test1 多的 ‘_’ 表示test2 比test1 少的

④ 使用【-u】比较两个文件

[root@xiezhr test]# diff -u test1.txt test2.txt
— test1.txt 2022-03-26 10:04:38.400526014 +0800
+++ test2.txt 2022-03-26 10:05:50.597539120 +0800
@@ -1,4 +1,3 @@
-1
-2
3
4
+5

vimdiff 命令我们可以拆分为vim和diff 由此可知,该命令是调用vim打开文件来可视化分屏比较多个文件

vimdiff [参数选项] [文件1] [文件2] [文件3]

一般不加参数

比较多个文件

[root@xiezhr test]# vimdiff test1.txt test2.txt test3.txt

退出vimdiff 需要执行两次退出vim的操作(:q)

wc 命令可以理解为是words count 的缩写,说到缩写,我知道你想到了“厕所”,可真不是厕所的缩写。

用于统计文件的行数、单词数或字节数

wc [参数选项] [文件]

参数参数说明-c统计字节数-w统计单词数-l统计行数-L打印最长行的长度-m统计字符数

① 不带参数

[root@xiezhr test]# cat xiezhr.txt
个人公众号:XiezhrSpace

个人博客:www.xiezhrspace.cn

个人微信号:xie_zhr

欢迎您的关注!
[root@xiezhr test]# wc xiezhr.txt
10 4 118 xiezhr.txt

结果说明,不带参数,直接输出的结果四10行,4个单词(按照英文单词方式记的),118个字节

② 带上参数,查看文件的字数、字节数、字符数

[root@xiezhr test]# cat xiezhr.txt
个人公众号:XiezhrSpace

个人博客:www.xiezhrspace.cn

个人微信号:xie_zhr

欢迎您的关注!
[root@xiezhr test]# wc -c xiezhr.txt
118 xiezhr.txt
[root@xiezhr test]# wc -l xiezhr.txt
10 xiezhr.txt
[root@xiezhr test]# wc -m xiezhr.txt
70 xiezhr.txt
[root@xiezhr test]# wc -w xiezhr.txt
4 xiezhr.txt
[root@xiezhr test]# wc -L xiezhr.txt
28 xiezhr.txt

③ 查看登录系统的用户数

# 查看哪些用户登录系统
[root@xiezhr test]# who
root pts/0 2022-03-26 10:03 (39.130.60.84)
root pts/1 2022-03-26 10:36 (39.130.60.84)
root pts/2 2022-03-26 10:56 (39.130.60.84)
# 查看一共有多少用户登录系统
[root@xiezhr test]# who |wc -l
3

sort 中文意思就是排序,所以呢该命令用于将输入的文件内容按照指定规则排序

sort [参数选项] [文件]

参数参数选项-b忽略每行开头存在的空格字符-n按照数值的大小进行排序-r倒叙排序-u去除重复行-t指定分隔符-k按指定区间排序

默认是从首字符向后,依次按照ASCII码升序排列

①不带参数进行排序

[root@xiezhr test]# cat a.txt

192.168.205.23
192.168.205.23
192.168.205.23
192.168.205.24
192.168.205.21
192.168.205.24

[root@xiezhr test]# sort a.txt

192.168.205.21
192.168.205.23
192.168.205.23
192.168.205.23
192.168.205.24
192.168.205.24

② 使用【-n】参数,按数字从小到大排序

[root@xiezhr test]# sort -n a.txt

192.168.205.21
192.168.205.23
192.168.205.23
192.168.205.23
192.168.205.24
192.168.205.24

③ 使用【-r】参数,按降序排序

[root@xiezhr test]# sort -nr a.txt
192.168.205.24
192.168.205.24
192.168.205.23
192.168.205.23
192.168.205.23
192.168.205.21

④使用【-u】参数,去除重复

[root@xiezhr test]# sort -u a.txt
192.168.205.21
192.168.205.23
192.168.205.24

⑤使用【-t -k】按指定列排序

[root@xiezhr test]# cat a2.txt
小谢 18岁
小明 17岁
小林 25岁
晓燕 30岁
小李 17岁
[root@xiezhr test]# sort a2.txt
小明 17岁
小李 17岁
小林 25岁
小谢 18岁
晓燕 30岁
# -t 后面指定以空格为分隔符, -k 后面参数表示按第二列排序
[root@xiezhr test]# sort -t ” ” -k2 a2.txt
小明 17岁
小李 17岁
小谢 18岁
小林 25岁
晓燕 30岁

uniq 命令用于检查及删除文本文件中重复出现的行列,一般与 sort 命令结合使用。

uniq [参数选项] [文件或标准输出]

参数参数说明-c去除重复行,并计算每行出现的次数-d只显示重复的行-u只显示唯一的行

① 不带参数去重

[root@xiezhr test]# cat test1.txt
个人公众号:XiezhrSpace
个人公众号:XiezhrSpace
个人公众号:XiezhrSpace
个人博客:www.xiezhrspace.cn
个人博客:www.xiezhrspace.cn
[root@xiezhr test]# uniq test1.txt
个人公众号:XiezhrSpace
个人博客:www.xiezhrspace.cn

②加上【-c】参数,显示相应出现的次数

[root@xiezhr test]# cat test1.txt
个人公众号:XiezhrSpace
个人公众号:XiezhrSpace
个人公众号:XiezhrSpace
个人博客:www.xiezhrspace.cn
个人博客:www.xiezhrspace.cn
[root@xiezhr test]# uniq -c test1.txt
3 个人公众号:XiezhrSpace
2 个人博客:www.xiezhrspace.cn

③ 配合着sort命令一起使用

[root@xiezhr test]# cat test1.txt
个人公众号:XiezhrSpace
个人公众号:XiezhrSpace
个人博客:www.xiezhrspace.cn
个人公众号:XiezhrSpace
个人博客:www.xiezhrspace.cn
个人博客:www.xiezhrspace.cn
[root@xiezhr test]# uniq test1.txt
个人公众号:XiezhrSpace
个人博客:www.xiezhrspace.cn
个人公众号:XiezhrSpace
个人博客:www.xiezhrspace.cn
[root@xiezhr test]# sort -n test1.txt | uniq -c
3 个人公众号:XiezhrSpace
3 个人博客:www.xiezhrspace.cn

man 命令用于将两个文件中,指定栏位内容相同的行连接起来

join [参数选项] [文件1] [文件2]

3、参数说明

参数参数选项-1以第一个文件的指定字段为基础进行合并-2以第二个文件的指定字段为基础进行合并-i比较字段时忽略大小写-a<1或2>除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行

合并文本

[root@xiezhr test]# cat a1.txt
小谢 男
小明 女
小林 男
晓燕 女
[root@xiezhr test]# cat a2.txt
小谢 18岁
小明 17岁
小林 25岁
晓燕 30岁
[root@xiezhr test]# join a1.txt a2.txt
小谢 男 18岁
小明 女 17岁
小林 男 25岁
晓燕 女 30岁

paste 命令能将文件按照行与行进行合并,中间使用tab隔开

paste [参数选项] [文件]

参数参数说明-d指定合并的分隔符,默认是tab-s每个文件占用一行

①不带参数合并文件

[root@xiezhr test]# cat a1.txt
小谢 男
小明 女
小林 男
晓燕 女
[root@xiezhr test]# cat a2.txt
小谢 18岁
小明 17岁
小林 25岁
晓燕 30岁
小李 17岁
[root@xiezhr test]# paste a1.txt a2.txt
小谢 男 小谢 18岁
小明 女 小明 17岁
小林 男 小林 25岁
晓燕 女 晓燕 30岁
小李 17岁

②通过【-d】参数,指定分隔符

[root@xiezhr test]# cat a1.txt
小谢 男
小明 女
小林 男
晓燕 女
[root@xiezhr test]# cat a2.txt
小谢 18岁
小明 17岁
小林 25岁
晓燕 30岁
小李 17岁
[root@xiezhr test]# paste -d: a1.txt a2.txt
小谢 男:小谢 18岁
小明 女:小明 17岁
小林 男:小林 25岁
晓燕 女:晓燕 30岁
:小李 17岁

③使用【-s】参数,合并内容

[root@xiezhr test]# cat a1.txt
小谢 男
小明 女
小林 男
晓燕 女
[root@xiezhr test]# paste -s a1.txt
小谢 男 小明 女 小林 男 晓燕 女

split 是分割的意思,按照指定行数或者指定文件大小分割文件,将其分割成多个文件。

split [参数选项] [输入文件] [输入文件名前缀]

参数参数说明-l指定分割后文件的最大行数

按行数进行分割

[root@xiezhr test]# cat a.txt

192.168.205.23
192.168.205.23
192.168.205.23
192.168.205.24
192.168.205.21
192.168.205.24
#原来的大文件”a.txt”切割成多个以”x”开头的小文件。而在这些小文件中,每个文件都只有3行内容。
[root@xiezhr test]# split -3 a.txt
[root@xiezhr test]# ls
a1.txt a2.txt a.txt c.txt dir dir2 dir3 dir5 dir6 dir_bak movie.tar.gz m.tx test1.txt test2.txt test3.txt test.txt tt.txt xaa xab xac xiezhr.txt

cut 意思是剪切,所以其功能就是把文件每一行剪切一段文字,并将文字输出

cut [参数选项] [文件]

参数参数选项-c以字符为单位进行分割-d自定义分割符,默认以tab为分割符-f与选项-d一起使用,指定显示哪个区域N第N个字节、字符或字段N-从第N个字符、字节或字段开始直至行尾N-M从第N到第M(包含M)个字节、字符或字段-M从第1到第M(包含M)个字节、字符或字段

以字符为单位进行剪切

[root@xiezhr dir]# cat a.txt
I am xiezhr.I love coding.

[root@xiezhr dir]# cut -c 4 a.txt #输出第4个字符
m

[root@xiezhr dir]# cut -c 3-4 a.txt #输出第3到第4个字符
am

[root@xiezhr dir]# cut -c -4 a.txt #输出第1到第4个字符
I am

[root@xiezhr dir]# cut -c 4- a.txt #输出第4个到最后个字符
m xiezhr.I love coding.

tr 命令用于替换或删除文件中的字符。

tr [参数选项] [字符1] [字符2]

参数参数说明-d删除字符-s保留连续字符的第一个字符,删去其他字符-c反选设定字符。也就是符合 SET1 的部份不做处理,不符合的剩余部份才进行转换

①将文件中的‘is’ 替换为‘ab’ 注意:凡是文中出现的”i”都替换成“a”,”s”均被替换成“b”,而不仅仅是“is”替换为字符串“ab”

[root@xiezhr dir]# clear
[root@xiezhr dir]# cat a.txt
I am xiezhr.
I love coding.
My official account is XiezhrSpace.
My blog is www.xiezhrspace.cn.
My QQ is 1666397814.

Welcome to follow me!

We study together and make progress together.

[root@xiezhr dir]# tr ‘is’ ‘ab’ < a.txt
I am xaezhr.
I love codang.
My offacaal account ab XaezhrSpace.
My blog ab www.xaezhrbpace.cn.
My QQ ab 1666397814.

Welcome to follow me!

We btudy together and make progrebb together.

②大小写替换

[root@xiezhr dir]# tr ‘[a-z]’ ‘[A-Z]’ < a.txt
I AM XIEZHR.
I LOVE CODING.
MY OFFICIAL ACCOUNT IS XIEZHRSPACE.
MY BLOG IS WWW.XIEZHRSPACE.CN.
MY QQ IS 1666397814.

WELCOME TO FOLLOW ME!

WE STUDY TOGETHER AND MAKE PROGRESS TOGETHER.

③ 将数字0-9 替换成a-j

[root@xiezhr dir]# tr ‘[0-9]’ ‘[a-j]’ < a.txt
I am xiezhr.
I love coding.
My official account is XiezhrSpace.
My blog is www.xiezhrspace.cn.
My QQ is bgggdjhibe.

Welcome to follow me!

We study together and make progress together.

④删除文中的字符(注:’M‘,’y’每个字符都会被删除,而不仅仅是“My”字符被删除)

[root@xiezhr dir]# tr -d ‘My’ < a.txt
I am xiezhr.
I love coding.
official account is XiezhrSpace.
blog is www.xiezhrspace.cn.
QQ is 1666397814.

Welcome to follow me!

We stud together and make progress together.

⑤ 删除文件中换行符“\n”,制表符“\t”

[root@xiezhr dir]# tr -d ‘\n\t’ < a.txt
I am xiezhr.I love coding. My official account is XiezhrSpace.My blog is www.xiezhrspace.cn.My QQ is 1666397814.Welcome to follow me!We study together and make progress together.[root@xiezhr dir]#

⑥使用【-c】参数取反

# 下面命令将不是‘0-9′ 的数字替换为‘*’
[root@xiezhr dir]# tr -c ‘0-9’ ‘*’ < a.txt
*********************************************************************************************************1666397814*************************************************************************[root@xiezhr dir]#

Linux系统中可以使用多种命令来处理文件内容。cat命令将文件的全部内容输出到控制台,但它不能上下滚动浏览;more命令可以进行分页显示,但只能向下滚动,若要向上则需重新输入命令;less命令集合了cat和more的优点,不仅可以翻页,还支持前后搜索;head和tail命令可以输出文件的头几行或尾几行;grep和find是用于搜索所需信息的强大命令,在数据挖掘和日志分析的应用场景中得到广泛应用。这些命令都有自己特别的用途,理解和掌握它们可以使我们在Linux系统中更加高效地工作和处理文件内容。

到此这篇关于Linux 文件内容相关命令使用汇总的文章就介绍到这了,更多相关Linux 文件内容相关命令内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:Linux中利用grep命令如何检索文件内容详解Linux 删除文件夹和文件的命令(强制删除包括非空文件)Linux ftp 命令行中下载文件get与上传文件put的命令应用详解Linux du命令查看文件夹大小并按降序排列在linux中导入sql文件的方法分享(使用命令行转移mysql数据库)linux NFS安装配置及常见问题、/etc/exports配置文件、showmount命令在linux命令下导出导入.sql文件的方法linux备份文件命令收集Linux移动文件与目录-mv命令的10个实用例子Linux 按时间批量删除文件命令(删除N天前文件)

© 版权声明

相关文章