Shell中怎么删除文本比较长的行

2022年 10月 17日 发表评论
腾讯云正在大促:点击直达 阿里云超级红包:点击领取
免费/便宜/高性价比服务器汇总入口(已更新):点击这里了解

本文主要介绍如何在Shell中删除长行,非常详细,有一定的参考价值。有兴趣的朋友一定要看!

Shell中如何删除文本比较长的行的实现方法

有时需要删除文件。这时常用vi命令中的dd命令,比如10G(跳转到第10行),然后是20dd(删除第20行)。但是,实际情况未必如此套路。例如,如果要删除一个文件中长度超过200个字符的一行,如果文本比较小,那就可以了,如果是几万行或者几十万行。想用vi是不现实的。我想到的方式是:比如通过sed,awk,egrep命令来达到目的。举个简单的例子。

假设下面的文本文件,删除长度超过5个字符的。

root@linux#catdata

一个

22

333

4444

55555

666666

7777777

88888888方法一: 使用awk命令的length()函数

root @ Linux # catdata | awk“{ if(length($ 0)=4)print $ 0 }”

一个

22

333

4444方法二: 使用grep命令

root@linux#catdata|egrep-w'^.{1,4}'

一个

22

333

4444方法三: 使用sed命令

root@linux#catdata|sed-n'/^.{5,}/!' wNewFile '

root@linux#catNewFile

一个

22

333

4444备注:

1.使用awk,grep命令时,可以将处理过的文件重定向到另一个新文件

2.参数,这意味着单词只匹配模式

3.表示以任何字符开始的一行。这与-w命令配合使用。这很关键,否则就找不到了

4.w!指示所有模式都不匹配,w是输出,写入新文件新文件

“如何删除Shell中的长行”这篇文章的内容就这么多了。感谢阅读!希望分享的内容对大家有帮助,更多相关知识。欢迎关注本站!

腾讯云正在大促:点击 https://2bcd.com/go/tx/进入最新活动页】领取无门槛代金券,附云服务器价格表,2核2G4M轻量应用服务器99元1年,新老用户都可以买,可以享受1次续费99元一年、135元15个月、三年560元,MySQL云数据库59元1年起,2核2G3M配置82元1年,2核4G5M配置188元一年、3年900元,4核8G12M轻量服务器880元15个月,8核16G配置1890元15个月,更多16核32G28M带宽和云服务器CVM标准型S5、GPU服务器、CVM标准型SA2租用优惠价格如下,可以 点此进入最新活动页 查看当前最新的优惠券和活动信息。还可以领下10元无门槛代金券:点此直达 阿里云限量超级红包:点击领取】5亿上云补贴和2088元满减代金券,阿里云服务器租用费用最新价格表【点击了解】,最便宜轻量应用服务器2核2G3M带宽82元1年,ECS云服务器2核2G3M带宽99元一年,ECS u1实例2核4G5M带宽优惠价格199元一年,香港30M带宽轻量服务器24元1个月、288元一年,4核8G服务器706元一年,ECS云服务器4核16G10M带宽30元1个月、90元3个月,云服务器8核32G10M带宽109元1个月、327元3个月。阿里云产品最高降价55%,点击 https://2bcd.com/go/aliyun/ 进入最新活动页了解。 腾讯云续费贵,一次性买3年/5年,免得续费贵。3年轻量 2核2G 4M 560元;3年轻量 2核4G 5M 3年900元,活动入口:点击前往(下拉到“爆品专区”即可看到)。 老用户享新人优惠的方法:用Qq登录、1人可注册3个新账号/用家人朋友的身份注册新号(点击注册新账号)。
小咸鱼

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: