linux c++ 写txt文件_Linux: Cat命令这些功能你可能还不知道,快来查缺补漏吧

cb2c011847464b8b4aff3b9e07e2839b.png

cat命令,你还不知道的使用方法

零、背景

cat命令是初学者都知道的命令,但是他还有一些功能也许你还不知道。今天我们将全面的介绍cat命令。

一、介绍

cat命令在linux系统中使用的非常普遍,cat命令能够帮助我们创建、查看、连接(多个文件合成一个)文件等操作。本文主要讲述cat命令的使用方法。

二、使用方法

2.1 语法

cat [OPTION]... [FILE]...

如果cat后面没有跟文件名或者跟的是中划线(-),那么cat将会从标准输入读取数据,输出到标准输出,也就是说读入一行键盘输入,然后在屏幕输出。稍后将会有案例体现。

2.2 选项

-E 每一行结尾显示美元符号($) -v 使用^和M-,除了LFD和TAB-T 显示制表符(TAB)为^I -A 相当于 -vET-e 相当于 -vE-n 显示行号(空行也显示)-b 显示行号,忽略空行。(空行不显示行号)-t 相当于 -vT-s 抑制重复的空行输出,也就是说多个相邻的空行只打印一次--help 显示帮助--version 显示版本
1ec318262c41142509e42bf86a407f4c.png

cat命令,你还不知道的使用方法

三、案例

数据准备:

假设我们现有一个文件,名称分别是a.txt。内容如下:

cat -n a.txt
10ddaa0298a98e601bd043f9f98dc3a6.png

cat命令,你还不知道的使用方法

3.1 创建文件并写入内容

小知识点:

> 重定向符合,可以将数据写入到文件,如果文件不存在则创建新文件;如果存在则覆盖原内容。>> 重定向符号,可以将数据追加到文件,如果文件不存在则创建新文件;如果存在则在原内容后面追加。

a. 创建b.txt文件,写入内容。

cat > b.txt

內容:

PHPJavaPhtyonScala
f1639bc65ddb1efd1fbd3097a5fa4f60.gif

cat命令,你还不知道的使用方法

注意: 写完文件退出的时候可以按 ctrl + D 或者 ctrl + C 退出写入。 当然也可以使用EOF,这种方法在写脚本的比较常用。

b. 下面将使用EOF结束的方式写入c.txt文件:

cat > c.txt << EOF 
78f08398a324df7eb223acc28118b4d6.gif

cat命令,你还不知道的使用方法

温馨提示:最后输入 EOF,来结束写入文件。

c. 拷贝写入文件

下面我们拷贝a.txt 文件内容到a.txt.bak

cat a.txt > a.txt.bakcat < a.txt > a.txt.bak2
e2ac22fe3faf60b22bcdd2de64098967.png

cat命令,你还不知道的使用方法

经过验证查看: a.txt.bak 和 a.txt.bak2和 a.txt文件内容相同。成功。。。

3.2 查看多个多件,排序以后新写入到新文件

cat 可以同时查看多个文件,格式

cat file1 file2 ...

a. 将a.txt、b.txt、c.txt 内容合并排序以后写入的d.txt文件中

cat a.txt b.txt c.txt | sort > d.txt
c6b80be7e73a3f4c9a129702b9e76e78.png

cat命令,你还不知道的使用方法

还有另外使用sort命令的-o选项也可以保存文件:

cat a.txt b.txt c.txt | sort -o d.txt
2ab4078f0feeb0ad79661f43c22df943.png

cat命令,你还不知道的使用方法

b. 将当前目录下所有文件排序、去重空行、以后,将包含Java行写入到java.txt文件中。

开始之前我们将目录下只保留a.txt b.txt c.txt三个文件,其他文件先删除

下面多个命令都能实现:

  1. 使用find + cat + 实现
find . -type f -exec cat '{}' ; | grep -i java > java.txt
4254dd07d1edfe37773dc63f3d012699.gif

cat命令,你还不知道的使用方法

  1. 使用 find + cat + xargs + grep 实现
find . -type f | xargs cat | grep -i java > java.txt
b31976765b2ba41f2bfb1efa91f5421b.gif

cat命令,你还不知道的使用方法

如果find用法还不熟悉的话,请参考:Linux:你真的了解Find命令吗?看看你还不知道的秘密

Find命令25个实例,你想要的都在这里了

还有很多可以实现,例如sed 、awk等等,因为篇幅有限,这里就不写怎么多了,如果感兴趣可以自己写写。

3.3 查看文件的行号

cat -n a.txt或者cat -b a.txt
7a6e8f655c173fe51bb73f6c291929b2.png

cat命令,你还不知道的使用方法

观察发现:

1. -n 对空行也显示行号

2. -b 对空行不显示行号

6a317a557beb4acf70c32bb7f98790ac.png

cat命令,你还不知道的使用方法

3.4 显示文件末尾的美元符号($)

选项说明:

-E 每一行结尾显示美元符号($)-A 相当于 -vET-e 相当于 -vE

命令

cat -E a.txt或者cat -A a.txt或者cat -e a.txt
c15650718403c456248bb0304fe72561.png

cat命令,你还不知道的使用方法

观察发现:

a. 三个命令都可以实现显示末尾美元符($)的功能

b. -A 还可以将制表符(TAB)显示成^I (大写i)

3.5 抑制多个个相邻空行输出(多个相邻空行只显示一行)

选项说明:

-s 抑制重复的空行输出,也就是说多个相邻的空行只打印一次

命令:

cat -s a.txt
da77ae55e5ef5342424003f6c0350efe.png

cat命令,你还不知道的使用方法

使用 -s 可以消除(抑制)多个相邻空行的输出,也就是说对个相邻的空行只会输出一个空行。

3.6 将TAB显示为^I

选项:

-T 将制表符()显示成^I-t 相当于 -vT-A 相当于 -vET(既可以输出制表符也可以显示末尾$符号)

命令:

cat -T a.txt cat -t a.txtcat -A a.txt
7ca4b0b5ded28e696bb76260455a0bf8.png

cat命令,你还不知道的使用方法

3.7 显示帮助和版本

选项:

--help 显示帮助--version 显示版本

命令:

cat --versioncat --help
4fb6d19ca6cc100037e6a88f463a227a.png

cat命令,你还不知道的使用方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值