概述
当工具输出了结果文件后,想要对其中的内容进行截取,若每一行的输出都有固定的、相同的格式,则可以用cut和sed截取出需要的内容。sed和cut应该都是Linux系统自带的。
cut命令
举例:有一个a.txt文件,内容为for example:this is a text
cat a.txt
for example:this is a text.
- 截取某单个字节或多个字节的内容。使用参数
-b
注意:-b是取单个字节,当单个字符占>1字节时,用-c更合适,不过实测了下,用-c 1尝试提取第一个中文字的时候失败了。
当1个字符占1个字节的时候,-b和-c参数功能应该是相同的。
cut -b 1 a.txt
f
# 截取第一个字节的内容。
cut -b 1-3 a.txt
for
cut -b -3 a.txt
for
# 截取前三个字节的内容。
cut -b 5- a.txt
example:this is a text.
# 截取从第五个字节开始的内容。
cut -b 1-3,5-12 a.txt
forexample:
# 截取一行中多段的内容,用逗号分隔截取的多段。
- 以某字符为分隔符进行分段,选取分割后的某段。使用参数
-d``和-f
当每行的内容是用tab进行分割的时候,可以直接用-f参数选择,无需-d参数指定分隔符
cut -d : -f 1 a.txt
for example
# -d参数以冒号为分隔符,将句子分隔为了两段;-f参数选取两段中的第一段。
cut -d : -f 1 a.txt --complement
this is a text.
# -d参数以冒号为分隔符,将句子分隔为了两段;-f参数选取两段中的第一段;--complement参数用于反向选择。
sed命令
举例:有一个c.txt文件,内容如下。
cat c.txt
1
2.keyword1
3
4
5
6
7
8.keyword2
利用sed删除某行、多行内容或包含关键字的行。
sed '2d' c.txt
1
3
4
5
6
7
8.keyword2
# 删除了第二行。
sed '2,4d' c.txt
1
5
6
7
8.keyword2
# 删除第二到第五行。
sed '2,$d' c.txt
1
# 用$来删除包含第二行后的所有行。
sed -n '/keyword/p' c.txt
2.keyword1
8.keyword2
# 输出包含keyword内容的行。
sed '/keyword/d' c.txt
1
3
4
5
6
7
# 删除包含keyword内容的行。
本文介绍了如何在Linux系统中使用cut和sed命令对文件内容进行精确截取和过滤操作。通过具体实例演示了如何利用这些命令来提取特定的数据片段,如按字节或字段分隔符截取数据,以及如何通过sed命令筛选或删除包含特定关键字的行。
1120

被折叠的 条评论
为什么被折叠?



