当你不知道的时候
  如果你要查找一个已知位置的文本,例如当 Perl 告诉你脚本执行到第 73 行出现了问题,或者你正在处理文件的第 1892 行,你可以使用sed 来显示特定的行(我只是不喜欢数到 1892 行)。而且额外花一点点力气,你可以只显示这一行。
  错误信息可能像这个样子:
  “syntax error line 73 near ”} else“ ”
  你可以使用一个sed命令来显示出问题的这行:
  $ sed -n 73p showvars
  else
  好了,是这行,但是我们也没有比之前多知道些什么。通过显示前面几行可以增加一点上下文信息,我们可以定位错误。这里有一个类似的命令可以显示这行和之前的十行:
  sed -n 63,73p showvars
  if $password eq "a_secret";
  {
  foreach $var (sort(keys(%ENV))) {
  $val = $ENV{$var};
  $val =~ s|n|n|g;
  $val =~ s|"|"|g;
  print '${var}="${val}"n'
  };
  }
  else
  哎呦!这看上去是某些人在写 if 语句时出了问题!我们可以很容易地修复它。
  你还可以使用 sed 命令来强调包含特定内容的行。在下面的命令里,我们增加了一个 “箭头标记” 来强调每一个包含 foreach 命令的行:
  $ sed '/print/{b label1; {:label1 ; s/^/# / ; s/$/ <===/ ;} }' showvars
  #!/bin/bash
  if $password eq "a_secret";
  {
  foreach $var (sort(keys(%ENV))) {
  $val = $ENV{$var};
  $val =~ s|n|n|g;
  $val =~ s|"|"|g;
  #         print '${var}="${val}"n' <===
  };
  }
  else
  你可以使用类似的命令注释掉你的 print 命令:
  $ sed '/print/{b label1; {:label1 ; s/^/# / ; s/$/ <===/ ;} }' showvars
  #!/bin/bash
  if $password eq "a_secret";
  {
  foreach $var (sort(keys(%ENV))) {
  $val = $ENV{$var};
  $val =~ s|n|n|g;
  $val =~ s|"|"|g;
  #         print '${var}="${val}"n' <===
  };
  }
  else
  大海捞针很难,其实地毯上找针也都不容易。但是通过使用一些常见 Unix 命令的变形,可以很容易找到你要找的东西,甚至当你并不知道要找什么的时候。