将变量传递给此特定sed命令

时间:2014-06-13 07:10:13

标签: unix sed csh

我首先搜索一个关键词,一旦在该特定行的文件中找到该关键词,我应该删除直到文件末尾。

#! /bin/csh -f
set sa = `grep -n -m 1 "^Pattern" file`
set s = `echo "$sa" | cut -d':' -f1`   
set m = `sed '$s,$d' file | tee see > /dev/null`

所以第一行给了我带行号的匹配行,第二行我得到的行号和第三行我试图从行$ s中删除说20到最后但它不起作用。我已尝试过所有组合,但它不接受变量$ s。请帮忙。

2 个答案:

答案 0 :(得分:2)

但是你可以通过一行sed

轻松完成
sed -n '/SEARCHPATTERN/q;p
  1. -n告诉我不打印行
  2. /SEARCHPATTERN/q退出搜索模式
  3. ;p否则会打印

答案 1 :(得分:1)

您需要从引号中取出$s,以便进行扩展。

set m = `sed $s',$d' file | tee see > /dev/null`