【操作系统】用cut/sed截取文件内容

本文介绍了如何在Linux系统中使用cut和sed命令对文件内容进行精确截取和过滤操作。通过具体实例演示了如何利用这些命令来提取特定的数据片段,如按字节或字段分隔符截取数据,以及如何通过sed命令筛选或删除包含特定关键字的行。

【操作系统】用cut/sed截取文件内容

概述

当工具输出了结果文件后,想要对其中的内容进行截取,若每一行的输出都有固定的、相同的格式,则可以用cut和sed截取出需要的内容。sed和cut应该都是Linux系统自带的。

cut命令

举例:有一个a.txt文件,内容为for example:this is a text

cat a.txt
for example:this is a text.
  1. 截取某单个字节或多个字节的内容。使用参数-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:
# 截取一行中多段的内容,用逗号分隔截取的多段。
  1. 以某字符为分隔符进行分段,选取分割后的某段。使用参数-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内容的行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值