Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Sed命令无法按预期从文件中删除特定行_Linux_Bash_Sed_Centos - Fatal编程技术网

Linux Sed命令无法按预期从文件中删除特定行

Linux Sed命令无法按预期从文件中删除特定行,linux,bash,sed,centos,Linux,Bash,Sed,Centos,我曾尝试使用sed命令从文件中删除特定行,但在我的系统(CentOS 6.3版(最终版))中似乎无法正常工作 my file1.txt包含以下数据 line1 line2 line3 line4 line5 现在我尝试使用下面的命令从文件中删除第三行 $ sed '3d' file1.txt 上述命令的输出为 line1 line2 line4 line5 但当我检查原始文件时,它似乎没有被删除。第三行在那个里 所以有人知道为什么sed不工作吗?让它成为在线sed: sed -i.bak

我曾尝试使用
sed
命令从文件中删除特定行,但在我的系统(CentOS 6.3版(最终版))中似乎无法正常工作

my file1.txt包含以下数据

line1
line2
line3
line4
line5
现在我尝试使用下面的命令从文件中删除第三行

$ sed '3d' file1.txt 
上述命令的输出为

line1
line2
line4
line5
但当我检查原始文件时,它似乎没有被删除。第三行在那个里

所以有人知道为什么
sed
不工作吗?

让它成为在线sed:

sed -i.bak '3d' file1.txt

要使用
sed
从文件中删除特定行而不创建备份,请执行以下操作:

sed-i'-e'3,6d'file1.txt

上面的命令将从
file1.txt
中删除第3行(包括第6行),而不创建备份

正常工作,因此基本上
sed
命令安全工作意味着首先备份原始文件,然后从原始右侧删除。感谢lotYes,这是正确的,您将使用
.bak
看到原始文件备份扩展。@anubhava:但此命令在busybox的sed中不起作用。您应该使用sed-i'3d'file1.txt,而不能在busybox上测试,但出于安全目的,通常sed命令允许备份扩展。
sed-i'3d'file1.txt
也可以在不备份原始文件的情况下工作。