我想从文件中删除一个或多个特定的行号。如何使用sed做到这一点?
当前回答
猫- b / etc / passwd | sed - e ' s / ^ () + (< line_number >) (\ t)(. *) /——删除/ g; s / ^ () + ([0 - 9] +) (\ t) / / g’
Cat -b ->打印数字行
S /^()+(<line_number>)(\t)(.*)//g -> replace line number to null (remove line)
s / ^ () + ([0 - 9] +) (\ t) /猫/ g #删除数字印刷
其他回答
您可以删除特定的单行及其行号
sed -i '33d' file
这将删除33行号上的行并保存更新后的文件。
如果你想删除第5到第10行和第12行:
sed -e '5,10d;12d' file
这将把结果打印到屏幕上。如果你想把结果保存到同一个文件:
sed -i.bak -e '5,10d;12d' file
这将把未修改的文件存储为file.bak,并删除给定的行。
注意:行号从1开始。文件的第一行是1,而不是0。
$ cat foo
1
2
3
4
5
$ sed -e '2d;4d' foo
1
3
5
$
猫- b / etc / passwd | sed - e ' s / ^ () + (< line_number >) (\ t)(. *) /——删除/ g; s / ^ () + ([0 - 9] +) (\ t) / / g’
Cat -b ->打印数字行
S /^()+(<line_number>)(\t)(.*)//g -> replace line number to null (remove line)
s / ^ () + ([0 - 9] +) (\ t) /猫/ g #删除数字印刷
还有awk
awk 'NR!~/^(5|10|25)$/' file
推荐文章
- 根据文件的第二列对数据进行排序
- sed中的环境变量替换
- pty和tty是什么意思?
- 如何在文件的开头插入文本?
- 如何使用sed替换文件中的第一次出现?
- 使用sed在匹配后插入行
- 在OS X上使用“sed”和“find”命令时错误:“无效的命令代码。”
- 在OS X上使用“sed”和“find”命令时错误:“无效的命令代码。”
- 在目录和子目录中查找并替换为sed
- Unix中基于模式重命名多个文件
- 如何在不运行Bash脚本的情况下检查它的语法?
- 在Mac (BSD)和Linux上都可以工作的sed in-place标志
- 删除一行的前N个字符的unix命令是什么?
- Nginx错误连接到php5-fpm。sock failed(13:权限被拒绝)
- 有时我的文件在我的vi |vim中死机,发生了什么?