Linux读取文件命令
# Linux读取文件命令
使用的测试文件 test.txt
11 12 13 14 15 16 17
21 22 23 24 25 26 27
31 32 33 34 35 36 37
41 42 43 44 45 46 47
2
3
4
# 1. cat
cat(英文全拼:concatenate)命令用于连接文件并打印到标准输出设备上。
⭐ 语法格式
cat [-AbeEnstTuv] [--help] [--version] fileName
⭐ 参数说明
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
⭐ 实例
把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
清空 test.txt 文档内容:
cat /dev/null > test.txt
cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
cat /dev/fd0 > OUTFILE
相反的,如果想把 image file 写到软盘,输入:
cat IMG_FILE > /dev/fd0
# 2. head
取出文件前面几行
head [-n number] 文件
**测试:获取前两行
[root@master ~]# head -n 2 test.txt
11 12 13 14 15 16 17
21 22 23 24 25 26 27
2
3
# 3. tail
取出文件后面几行
tail [-n number] 文件
测试1:获取后两行
[root@master ~]# tail -n 2 test.txt
31 32 33 34 35 36 37
41 42 43 44 45 46 47
2
3
测试2:获取 2 到最后一行
[root@master ~]# tail -n +2 test.txt
21 22 23 24 25 26 27
31 32 33 34 35 36 37
41 42 43 44 45 46 47
2
3
4
测试3:从第 2 行开始显示 2 行
[root@master ~]# cat test.txt | tail -n +2 | head -n 2
21 22 23 24 25 26 27
31 32 33 34 35 36 37
2
3
测试4:显示 2 到 3 行
[root@master ~]# cat test.txt | head -n 3 | tail -n +2
21 22 23 24 25 26 27
31 32 33 34 35 36 37
2
3
# 4. cut
命令:cut [-bn/c/df] [file]
参数说明
-b :以字节为单位进行分割。这些字节位置将忽略多字节字符边界,除非也指定了 -n 标志。
-c :以字符为单位进行分割。
-d :自定义分隔符,默认为制表符。
-f :与-d一起使用,指定显示哪个区域。
-n :取消分割多字节字符。仅和 -b 标志一起使用。如果字符的最后一个字节落在由 -b 标志的 List 参数指示的范围之内,该字符将被写出;否则,该字符将被排除。
测试1:按空格分割 test.txt 第 1 行,获取第 3 个元素
[root@master ~]# head -n 1 test.txt | cut -d ' ' -f 3
13
2
测试2:显示第 3 行,第 2 列的元素
[root@master ~]# cat test.txt | head -n 3 | tail -n +3 | cut -d ' ' -f 2
32
2