我有一个文件,foo.txt,包含以下行:
a
b
c
我想要一个简单的命令,导致foo.txt的内容为:
a
b
我有一个文件,foo.txt,包含以下行:
a
b
c
我想要一个简单的命令,导致foo.txt的内容为:
a
b
当前回答
使用GNU sed:
sed -i '$ d' foo.txt
-i选项在3.95以上的GNU sed版本中不存在,所以你必须使用它作为一个临时文件的过滤器:
cp foo.txt foo.txt.tmp
sed '$ d' foo.txt.tmp > foo.txt
rm -f foo.txt.tmp
当然,在这种情况下,你也可以用head -n -1代替sed。
一样:
在Mac OS X(10.7.4)上,与上面的sed -i命令等价的是
sed -i '' -e '$ d' foo.txt
其他回答
你也可以试试这个方法:删除最后n行数的例子。
= 0;While [$a -lt 4];do sed -i '$ d' output.txt;A =expr $ A + 1;完成
删除文件(output.txt)的最后4行。
OK处理了大量的数据,输出是OK的,但有一个垃圾行。
如果我用管道输出脚本到:
| sed -i '$ d'我将得到以下错误,最终没有输出 Sed:没有输入文件
但是|头-n -1成功了!
删除zshrc文件中的最后一行,例如:
cat ~/.zshrc
sed -i '' -e '$ d' ~/.zshrc
cat ~/.zshrc
Linux
$表示最后一行,d表示删除:
sed '$d' ~/path/to/your/file/name
操作系统
相当于sed -i:
sed -i '' -e '$ d' ~/path/to/your/file/name
使用GNU sed:
sed -i '$ d' foo.txt
-i选项在3.95以上的GNU sed版本中不存在,所以你必须使用它作为一个临时文件的过滤器:
cp foo.txt foo.txt.tmp
sed '$ d' foo.txt.tmp > foo.txt
rm -f foo.txt.tmp
当然,在这种情况下,你也可以用head -n -1代替sed。
一样:
在Mac OS X(10.7.4)上,与上面的sed -i命令等价的是
sed -i '' -e '$ d' foo.txt