为什么 sed 报告波浪号"Invalid command code"?



我正在运行以下sed命令。我想从第二行开始提取每4行:

input:
$ sed -n '2~4p' filename
output:
sed: 1: "2~4p": invalid command code ~

有人知道为什么会发生这种事吗?我使用的是macOSX10.8。

我知道下面的awk命令命令会起作用:$awk"NR%4==2{打印}〃;

我很好奇为什么波浪号对这个sed命令无效。

我猜你在Mac OS X中。它有sed的BSD实现,如果你在man页面中搜索~,你会一无所获,因为它不在那里。

您可以安装GNU实现,例如使用MacPorts:

sudo port install gsed

或酿造:

brew install gnu-sed
 sed -n '1d;N;N;N;P;d' YourFile

单行

  • 通过1行(删除也意味着直接转到脚本末尾(
  • 负载3线大于电流
  • 打印第一行
  • 删除加载的行
  • 重新启动操作

最新更新