linux有没有命令可以 删除每一行的前几个字符

linux有没有命令可以 删除每一行的前几个字符,第1张

假设文件名为 a.txt, 删除 每行前5个字符

其中 ^.  为删除行首第一个字符

^.. 为删除行首头俩字符,以此类推。

sed -i 's/^.....//g' a.txt  #整个文件所有行都删除前5个字符

sed -i '1,5 s/^....//g' a.txt # 第一至五行删除钱4个字符。

或者用正则

sed -i 's/^.\{5\}//g' a.txt #整个文件所有行都删除前5个字符

sed -i '1,50 s/^.\{4\}//g' a.txt # 第一至五十行删除钱4个字符。

linux删除大文件的前n行

在数据挖掘中我们经常会增量更新训练日志,需要删除前n行的过期数据,直接用sed命令比较慢,谷歌了一下,发现有个奇技淫巧:

tail -n +3 old_file >new_file

mv new_file old_file

这样就删除了前2行,速度要比sed命令快

root@localhost:~# cat 2

a=1 b=2 c=3

d=5 ========== 1234

1234567899

root@localhost:~# sed 's/.*==//g' 2

a=1 b=2 c=3

1234

1234567899


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/8385248.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-15
下一篇 2023-04-15

发表评论

登录后才能评论

评论列表(0条)

保存