如何将参数传递给sed?

迈克尔·杜兰特

更准确地说-如何将参数传递到随后调用sed的程序中-如何“传递”该参数?

我有一个文件“ source_code.sc”。
我有一个sed脚本“ find_expect”:

#n
/expect/{
=
p
}

我是从一个程序内部调用的,该程序通过以下方式遍历文件

sed -f find_expect.= source_code.sc

该印刷品找到其行号,例如

712
      expect(it).to be_true

但是,搜索是硬编码的,用于搜索“期望”。如何更改此设置,以便搜索文本本身也可以通过。我还使用find遍历文件,因此当前对许多文件调用sed。例如,要搜索“ blob”,程序在文件中循环将使用以下命令调用它

sed -f find_expect.= "$file_from_loop" source_code.sc 'blob'
# with 'blob' being passed in from the main script
# which would be invoked with `./change_all.sh 'blob'
# I don't pass the file pattern in to this main call as I just
# recursively do all files (that match a pattern) from the current directory down
约瑟夫·R。

听起来您正在尝试重新实现grep而不sed只是使用:

grep -n -- "$var" file

如果var包含要从字面上进行匹配的正则表达式元字符,请提供以下-F选项grep

grep -nF -- "$var" file

其中var包含您所需的模式。

grep(1)手册页:

-n,--
line-number在其输出文件的每个输出行之前都以从1开始的行号作为前缀。(-n由POSIX指定。)

如果您坚持使用sed,则可以为此目的创建一个函数:

notgrep (){
    if [ $# -ne 2 ];then
        echo "Usage: notgrep <pattern> <file>"
        exit 1
    end
    sed -n "/$1/{
        =
        p
    }" "$2"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将命令行参数传递给sed?

来自分类Dev

如何将参数传递给片段?

来自分类Dev

如何将参数传递给线程?

来自分类Dev

如何将参数传递给ValidationAttribute?

来自分类Dev

如何将参数传递给BootstrapperFile?

来自分类Dev

如何将参数传递给jvmmon?

来自分类Dev

如何将参数传递给exe?

来自分类Dev

如何将参数传递给嵌入

来自分类Dev

如何将参数传递给BootstrapperFile?

来自分类Dev

如何将参数传递给别名?

来自分类Dev

如何将参数传递给jvmmon?

来自分类Dev

如何将参数传递给ElapsedEventHandler

来自分类Dev

如何将参数传递给boilermake

来自分类Dev

如何将参数传递给模态

来自分类Dev

如何将参数传递给路由

来自分类Dev

如何将参数传递给路由?

来自分类Dev

如何将参数或参数传递给Gradle任务

来自分类Dev

如何将函数作为参数传递给参数?

来自分类Dev

如何将参数传递给此参数?

来自分类常见问题

如何将包含斜杠的变量传递给sed

来自分类Dev

如何将命令输出传递给sed

来自分类Dev

如何将路径名传递给sed

来自分类Dev

JavaScript:如何将额外的参数传递给回调

来自分类Dev

如何将参数传递给任务队列?

来自分类Dev

如何将参数传递给Geb中的内容定义?

来自分类Dev

如何将参数传递给mainLayoutAsset.php文件?

来自分类Dev

如何将空参数传递给python函数?

来自分类Dev

如何将参数传递给Java bash脚本?

来自分类Dev

如何将查询参数传递给程序?