Linux中文件操作的命令

Posted 心笔轩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中文件操作的命令相关的知识,希望对你有一定的参考价值。

下面是对linux命令中,对文件的操作的总结。

1. cut

cut命令用于显示每行从开头算起 num1 到 num2 的文字。即,截取指定字段并输出。

cut [-bcdnf] [file]

 

-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除

举例:

cut -c-2 test (打印前2个字符)
cut -c5- test (打印从第5个字符开始到结尾)
cut -d " " -f 2 test (以空格为分隔符,打印第二列)

2. split

split命令用于将一个文件分割成数个。

split [--help][--version][-<行数>][-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]

 

-<行数> : 指定每多少行切成一个小文件
-b<字节> : 指定每多少字节切成一个小文件
-C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
[输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号

举例:

Split -5 test (会将原来的大文件"test"切割成多个以"x"开头的小文件。而在这些小文件中,每个文件都只有5行内容)

3. join

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

join [-i][-a<1或2>][-e<字符串>][-o<格式>][-t<字符>][-v<1或2>][-1<栏位>][-2<栏位>][--help][--version][文件1][文件2]

 

-a<1或2> 除了显示原来的输出内容之外,还显示指令文件中没有相同栏位的行。
-e<字符串> 若[文件1]与[文件2]中找不到指定的栏位,则在输出中填入选项中的字符串。
-i或--igore-case 比较栏位内容时,忽略大小写的差异。
-o<格式> 按照指定的格式来显示结果。
-t<字符> 使用栏位的分隔字符。
-v<1或2> 跟-a相同,但是只显示文件中没有相同栏位的行。
-j FIELD :等同于 -1 FIELD -2 FIELD,-j指定一个域作为匹配字段
-1<栏位> 连接[文件1]指定的栏位。
-2<栏位> 连接[文件2]指定的栏位。

举例:

join test1 test2 (默认比较两个文件,将两个文件中第一行的内容相同的行连接起来)
join –a1 test1 test2 (左连接,显示左边文件中的所有记录,右边文件中没有匹配的显示空白。)
join –a2 test1 test2 (右连接,显示右边文件中的所有记录,左边文件中没有匹配的显示空白。)
join –a1 –a2 test1 test2 (全连接,显示左边和右边所有记录)

4. paste

paste命令用于合并文件的列。

paste [-s][-d <间隔字符>][--help][--version][文件...]

 

-d<间隔字符>或--delimiters=<间隔字符>  用指定的间隔字符取代跳格字符。
-s或--serial  串列进行而非平行处理。

举例:

paste –d: test1 test2 (合并2个文件,并以:为分隔符进行连接)

5. uniq

uniq命令用于检查及删除文本文件中重复出现的行列。

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

 

-c或--count 在每列旁边显示该行重复出现的次数。
-d或--repeated 仅显示重复出现的行列。
-u或--unique 仅显示出一次的行列。
-f<栏位>或--skip-fields=<栏位> 忽略比较指定的栏位。
-s<字符位置>或--skip-chars=<字符位置> 忽略比较指定的字符。
-w<字符位置>或--check-chars=<字符位置> 指定要比较的字符。
[输入文件] 指定已排序好的文本文件。
[输出文件] 指定输出的文件。

举例:

uniq一般需要配合sort使用,对已排序的文件进行操作。如:

对已排序的文件,删除重复行;
sort test|uniq

对已排序的文件,仅显示重复出现的行(仅出现一次的行);
sort test|uniq –d(-u)

对已排序的文件,在每列前显示该行重复次数,并根据重复次数再次排序;
sort test|uniq –c|sort -r

6. sort

sort命令用于将文本文件内容加以排序。

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

 

-b 忽略每行前面开始出的空格字符。
-c 检查文件是否已经按照顺序排序。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-f 排序时,将小写字母视为大写字母。
-i 排序时,除了040至176之间的ASCII字符外,忽略其他的字符。
-m 将几个排序好的文件进行合并。
-M 将前面3个字母依照月份的缩写进行排序。
-n 依照数值的大小排序。
-o<输出文件> 将排序后的结果存入指定的文件。
-r 以相反的顺序来排序。
-t<分隔字符> 指定排序时所用的栏位分隔字符。
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一栏位。

举例:

sort –r test #逆序排列文件

以上是关于Linux中文件操作的命令的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段15——git命令操作一个完整流程

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

使用sunOS中的find命令比较两个目录中的所有文件

linux怎么在代码里将每次的操作结果写入到文件中?

linux中怎么查看mysql数据库版本

VSCode自定义代码片段——cli的终端命令大全