Linux常用命令:文本文件的拼接与分割

在Linux系统中,命令行工具提供了强大的文本处理能力,除了前面所说的vi/vim工具。本文将介绍几个常用的Linux命令,包括catpastesplitcutwc,它们分别用于文本文件的拼接、分割、剪切和计数。通过掌握这些命令,你将能够更加高效地在Linux环境中处理文本文件。

准备工作:我们先使用vim创建一个file1.txt、file2.txt,学习使用vi/vim工具

具体内容如下:

# 使用Vim工具创建file1.txt
$vim file1.txt

# 输入下列内容后,按Esc键,使用:wq 退出并保存!
This is file 1.
Hello world!



# 使用Vim工具创建file2.txt
$vim file2.txt

# 输入下列内容后,按Esc键,使用:wq 退出并保存!
This is file 2.
Goodbye world!

1.cat命令

cat命令的全称是concatenate,意思是连接。它可以将一个或多个文件的内容输出到标准输出,也可以将一个或多个文件的内容拼接到另一个文件中。cat命令的语法格式如下:

cat [选项] [文件]...

其中,选项可以是以下之一:

  • -A:显示所有特殊字符,包括制表符、换行符和行尾符。
  • -b:对非空行编号。
  • -E:在每行的末尾显示一个$符号。
  • -n:对所有行编号。
  • -s:压缩连续的空行为一行。
  • -T:显示制表符为^I。
  • -v:显示不可打印的字符。

如果没有指定文件,或者文件为-,则从标准输入读取内容。如果指定了多个文件,cat命令会按顺序将它们的内容输出或拼接。

例如,前面写出的有两个文件file1.txt和file2.txt,它们的内容分别如下:

$cat file1.txt
This is file 1.
Hello world!


$cat file2.txt
This is file 2.
Goodbye world!

如果我们想要将这两个文件的内容输出到屏幕上,可以使用以下命令:

$cat file1.txt file2.txt
This is file 1.
Hello world!
This is file 2.
Goodbye world!

如果我们想要将这两个文件的内容拼接到一个新的文件file3.txt中,可以使用以下命令:

$cat file1.txt file2.txt > file3.txt
$cat file3.txt
This is file 1.
Hello world!
This is file 2.
Goodbye world!

如果我们想要在输出或拼接的过程中对每行进行编号,可以使用-n选项:

$cat -n file1.txt file2.txt
     1  This is file 1.
     2  Hello world!
     3  This is file 2.
     4  Goodbye world!

2.paste命令

paste命令的作用是将多个文件的内容按列拼接,即将每个文件的第一行拼接成一行,第二行拼接成一行,以此类推。paste命令的语法格式如下:

paste [选项] [文件]...

其中,参数选项:

  • -d:指定拼接时的分隔符,默认为制表符。
  • -s:将每个文件的内容拼接成一行,而不是按列拼接。

如果没有指定文件,或者文件为-,则从标准输入读取内容。如果指定了多个文件,paste命令会按顺序将它们的内容按列拼接。

例如,假设有两个文件file1.txt和file2.txt,它们的内容分别如下:

$cat file1.txt
This is file 1.
Hello world!


$cat file2.txt
This is file 2.
Goodbye world!

如果我们想要将这两个文件的内容按列拼接,可以使用以下命令:

$paste file1.txt file2.txt
This is file 1.	This is file 2.
Hello world!	Goodbye world!

如果我们想要指定拼接时的分隔符为逗号,可以使用-d选项:

$paste -d, file1.txt file2.txt
This is file 1.,This is file 2.
Hello world!,Goodbye world!

如果我们想要将每个文件的内容拼接成一行,可以使用-s选项:

$paste -s file1.txt file2.txt
This is file 1.	Hello world!
This is file 2.	Goodbye world!

3.split命令

split命令的作用是将一个大文件分割成多个小文件,可以按行数、字节数或后缀进行分割。split命令的语法格式如下:

split [选项] [文件] [前缀]

其中,选项可以是以下之一:

  • -a:指定生成的小文件的后缀长度,默认为2。
  • -b:指定按字节数进行分割,可以使用k、m、g等单位。
  • -d:指定生成的小文件的后缀为数字,而不是字母。
  • -l:指定按行数进行分割,默认为1000。
  • -n:指定按后缀进行分割,可以使用r或l来指定是否平均分配。

如果没有指定文件,或者文件为-,则从标准输入读取内容。如果没有指定前缀,split命令会使用x作为前缀。

例如,假设有一个文件file.txt,创建file.txt的方法可以参考上文。它的内容如下:

$cat file.txt
This is a large file.
It has many lines of text.
We want to split it into smaller files.
Each file should have 2 lines of text.

如果我们想要按行数进行分割,可以使用以下命令:

$split -l 2 file.txt
$ls
file.txt  xaa  xab  xac

$cat xaa
This is a large file.
It has many lines of text.

$cat xab
We want to split it into smaller files.
Each file should have 2 lines of text.

$cat xac

可以看到,split命令将file.txt分割成了三个小文件,每个文件有两行文本,最后一个文件为空。生成的小文件的后缀为字母,从aa开始。

如果我们想要按字节数进行分割,可以使用以下命令:

$split -b 20 file.txt
$ls
file.txt  xaa  xab  xac  xad  xae

$cat xaa
This is a large file

$cat xab
.
It has many lines 

$cat xac
of text.
We want to spli

$cat xad
t it into smaller

$cat xae
 files.
Each file should

可以看到,split命令将file.txt分割成了五个小文件,每个文件有20个字节,最后一个文件不足20个字节。生成的小文件的后缀为字母,从aa开始。

如果我们想要按后缀进行分割,可以使用以下命令:

$split -n 3 file.txt
$ls
file.txt  xaa  xab  xac

$cat xaa
This is a large file.
It has many lines of text.

$cat xab
We want to split it into smaller files.


$cat xac
Each file should have 2 lines of text.

可以看到,split命令将file.txt分割成了三个小文件,每个文件有一个后缀,从1开始。生成的小文件的后缀为字母,从aa开始。

4.cut命令

cut命令的作用是从文件或标准输入中提取指定的列或字段,可以按字符、字节或分隔符进行提取。cut命令的语法格式如下:

cut [选项] [文件]

其中,选项可以是以下之一:

  • -c:指定按字符提取,可以使用-或,来指定范围或列表。
  • -d:指定字段的分隔符,默认为制表符。
  • -f:指定提取的字段,可以使用-或,来指定范围或列表。
  • -s:指定只输出包含分隔符的行,忽略不包含分隔符的行。

如果没有指定文件,或者文件为-,则从标准输入读取内容。

例如,假设有一个文件file.txt,它的内容如下:

$cat file.txt
name,age,gender
Alice,20,F
Bob,25,M
Charlie,30,M

如果我们想要提取每行的第一个字段,即姓名,可以使用以下命令:

$cut -d, -f1 file.txt
name
Alice
Bob
Charlie

如果我们想要提取每行的第二个和第三个字段,即年龄和性别,可以使用以下命令:

$cut -d, -f2,3 file.txt
age,gender
20,F
25,M
30,M

如果我们想要提取每行的第一个字符,可以使用以下命令:

$cut -c1 file.txt
n
A
B
C

如果我们想要提取每行的第二个到第四个字符,可以使用以下命令:

$cut -c2-4 file.txt
ame
lic
ob
har

5.wc命令

wc命令的作用是统计文件或标准输入中的行数、字数、字节数等信息。wc命令的语法格式如下:

wc [选项] [文件]...

其中,选项可以是以下之一:

  • -c:显示字节数。
  • -l:显示行数。
  • -m:显示字符数。
  • -w:显示字数。
  • -L:显示最长行的长度。

如果没有指定文件,或者文件为-,则从标准输入读取内容。如果指定了多个文件,wc命令会显示每个文件的统计信息,以及总的统计信息。

例如,假设有一个文件file.txt,它的内容如下:

$cat file.txt
This is a large file.
It has many lines of text.
We want to split it into smaller files.
Each file should have 2 lines of text.

如果我们想要统计这个文件的行数、字数和字节数,可以使用以下命令:

$wc file.txt
 4 16 79 file.txt

可以看到,file.txt有4行,16个字,79个字节。

如果我们想要只显示行数,可以使用  -l  选项:

$wc -l file.txt
4 file.txt

如果我们想要只显示字节数,可以使用  -c  选项:

$wc -c file.txt
79 file.txt

如果我们想要显示最长行的长度,可以使用  -L  选项:

$wc -L file.txt
31 file.txt

可以看到,file.txt的最长行是第三行,它有31个字符。

以上就是Linux常用命令:文本文件的拼接与分割的介绍,希望对你有所帮助。如果你有任何问题或建议,欢迎在评论区留言。谢谢!

  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TiYong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值