精华内容
下载资源
问答
  • sed中使用变量

    千次阅读 2012-03-20 09:31:40
    sed中使用变量 2011-06-13 13:48 在sed中使用变量 通常,我们使用sed进行变量替换的时候,替换和被替换变量都是hard-coded的。例如: sed -n ‘/comm/p’ /tmp/test.log 如果我们用一变量var,它...
      
    
    在sed中使用变量
    2011-06-13 13:48

    在sed中使用变量

    通常,我们使用sed进行变量替换的时候,替换和被替换变量都是hard-coded的。例如:

    sed -n ‘/comm/p’ /tmp/test.log

    如果我们用一变量var,它的值根据上下文变化

    $ var=”comm”,定义了变量,那么我们在sed的使用中这样使用变量

    $ sed -n ‘/’”$var”‘/p’ /tmp/test.log

    注意,是用单引号包含双引号来引用变量。

    最初接触这个命令的人,可能以为$var之前的单引号会结束当前的script,其实不会。

    若要在文本中匹配一个范围的话,可以使用的sed匹配
    $ sed -n ‘/’”$var_start”‘/{p;:a;n;/’”$var_end”‘/p;ba}’ /tmp/test.log

    -n 关闭sed的默认输出
    /$var_start/ 当数据行中查找到字符串$var_start 时开始工作,后面的是命令组{}
    p; 打印出$var_start 这一行
    :a 定义一个标签,名称为a
    n; 读取下一行
    /$var_end/p; 当读入的这一行中查找到$var_end 字符串时,输出
    ba 跳转到标签a

    其实有个问题,应该适时跳出的,不然要等文件全部读取完,效率低了。自己改吧


    http://hi.baidu.com/afantihome/blog/item/cc51e70ac47bea0795ca6bd0.html
    展开全文
  • sed 中使用变量

    2015-09-21 16:23:50
    一般在sed 替换都用单引号,如下边 sed -in-place ‘s/8080/8001/g’ /home/work/server.xml 但是如果需要把8001改成变量,如 sed -in-place ’s/8080/$port/g‘ /home/work/server.xml 这样就不成功。 此时...
    一般在sed 中替换都用单引号,如下边
    
    sed -in-place ‘s/8080/8001/g’ /home/work/server.xml
    但是如果需要把8001改成变量,如
    sed -in-place ’s/8080/$port/g‘ /home/work/server.xml
    这样就不成功。
    此时需要把单引号改成双引号,如下边例子
    $port=8001
    sed -in-place "s/8080/$port/g" /home/work/server.xml
    展开全文
  • linux shell sed中使用变量.pdf
  • sed中使用变量替换

    2021-08-10 11:17:55
    sed中使用变量替换 1.sed命令使用双引号的情况下,使用$var直接引用 $ echo|sed "s/^/$RANDOM.rmvb_/g" 29328.rmvb_ 如果替换的变量内容中含有/符号则会提示如下错误,如 查找当前目录下的目录文件并将相对路径...

    sed中使用变量替换
     
    1.sed命令使用双引号的情况下,使用$var直接引用
     
    $ echo|sed "s/^/$RANDOM.rmvb_/g"
     29328.rmvb_

    如果替换的变量内容中含有/符号则会提示如下错误,如
    查找当前目录下的目录文件并将相对路径替换为绝对路径
    find . -type f | sed -n "s/\./$PWD/p"
    sed: -e expression #1, char 19: unknown option to `s'
    从语法上看,没有任何问题;但由于变量中包含有“/”作为分隔符,这会和sed的替换操作的分隔符“/”引起混淆;所以,只要不使用“/”做分隔符就可以解决这个问题,如果使用“%”而不是“/”来作为sed的替换操作的分隔符,就不会出错。其实使用#或%或;作为分隔符也是可以的,只要不会与替换中有相同的而且不是元字符的特殊符号都是可以的;使用时可以根据情况灵活选择。
    find . -type f | sed -n "s%\.%$PWD%p"
    find . -type f | sed -n "s#\.#$PWD#p"

    # 上面例子引用了一个环境变量$RANDOM的值
     
    2.sed命令使用单引号的情况下,使用'"$var"'引用
     
    类似,我们可以看到
     
    $ echo|sed 's/^/'"$RANDOM"'.rmvb_/g'
     31338.rmvb_
     
    sed中执行外部命令
     
    1.sed命令使用单引号的情况下使用'`shell command`'或者'$(shell command)'引用命令执行的结果
     
    还是以上面案例分析,例子如下
     
    $ echo|sed 's/^/'`echo $RANDOM`'.rmvb_/g'
     8063.rmvb_
     

    # 上面的例子使用了旧式的命令替换,也可以采用新式的命令替换方法,如下
     
    $ echo|sed 's/^/'$(echo $RANDOM)'.rmvb_/g'
     18554.rmvb_
     

    # 下面例子取用当前日期作为结果的一部分,如下
     
    $ echo|sed 's/^/'$(date +"%Y%m%d")'.rmvb_/g'
     20120108.rmvb_
     

    2.sed命令使用双引号的情况下直接`shell command`或者$(shell command)引用命令执行的结果
     

    类似的,双引号的情况,如下
     
    $ echo|sed "s/^/$(date +"%Y%m%d").rmvb_/g"
     20120108.rmvb_
     

    # 使用环境变量$RANDOM以及旧式命令替换的例子
     
    $ echo|sed "s/^/`echo $RANDOM`.rmvb_/g"
     4988.rmvb_

    展开全文
  • sed中使用变量,普通的处理方式无法解析变量 如当前file文件中存在字符串pedis,现将其替换为redis [root@localhost work]# cat file pedis 如下两种替换方式,都是行不通的 #!/bin/bash old_str=...

    sed中使用变量,普通的处理方式无法解析变量

    如当前file文件中存在字符串pedis,现将其替换为redis

    [root@localhost work]# cat file 
    pedis

    如下两种替换方式,都是行不通的

    #!/bin/bash
    
    old_str=pedis
    new_str=redis
    
    sed -i 's/$old_str/$new_str/g' file
    sed -i 's#$old_str#$new_str#g' file

    将变量用三个单引号引起来,可以解决上述问题

    #!/bin/bash
    
    old_str=pedis
    new_str=redis
    
    #sed -i 's/$old_str/$new_str/g' file
    
    #sed -i 's#$old_str#$new_str#g' file
    
    sed -i 's/'''$old_str'''/'''$new_str'''/g' file

    执行结果

    [root@localhost work]# cat file 
    pedis
    [root@localhost work]# ./replace.sh 
    [root@localhost work]# cat file 
    redis

     当变量中存在特殊字符/,上面的替换方式就不合适了,需要将/改为#

    #!/bin/bash
    
    old_str=redis
    new_str=/data/
    
    sed -i 's#'''$old_str'''#'''$new_str'''#g' file

    执行结果

    [root@localhost work]# cat file 
    redis
    [root@localhost work]# ./replace.sh 
    [root@localhost work]# cat file 
    /data/

    转载于:https://www.cnblogs.com/qq931399960/p/11568084.html

    展开全文
  • linux shell sed中使用变量

    千次阅读 2020-03-19 11:43:32
    sed条件是不认识变量取值的 sed '/$x/d' test 所以要想它能够识别变量 sed "/$x/d/" test 方法简单就是把"单引号"变成"双引号
  • 如何在sed中使用变量方法及其简单

    千次阅读 2018-11-04 16:37:00
    sed条件是不认识变量取值的 sed '/$x/d' test 所以要想它能够识别变量 sed "/$x/d/" test 方法简单就是把"单引号"变成"双引号" 转载于:https://www.cnblogs.com/lijianjie/p/9904515.html...
  • 如何在sed中使用变量

    千次阅读 2013-03-06 14:55:45
    最近写脚本经常需要用sed去改写文件,其中就遇到一个问题改写的内容可以通过变量来控制. 例如,更改mysql配置文件的server-id ...sed -i 's/\(^server[_-]id[ \t]*=...上面这种方法可以将port变量插入到sed中并替换
  • SED中使用变量

    千次阅读 2011-01-27 09:39:00
    举例说明:变量a和b,使用sed的替换命令将$a替换为$b 本文包含四种方法,考验大家对meta的理解程度。如果觉得不过关,请复习一下netman老哥的十三问吧。 ...
  • sed中使用变量 通常,我们使用sed进行变量替换的时候,替换和被替换变量都是hard-coded的。例如: sed -n ‘/comm/p’ /tmp/test.log 如果我们用一变量var,它的值根据上下文变化 $ var=”comm”,...
  • 在使用sed对日志或者其它文本进行parse的过程当中,有时候我们需要引用外部变量的值, 或者获取一个shell命令执行的结果,以便...sed中使用变量替换 1.sed命令使用双引号的情况下,使用$var直接引用 $ echo|sed "s
  • sed中引用变量

    2017-02-14 17:57:00
    sed 引用变量 eval sed 's/string/$REPLACE/g' file awk 引用变量 awk 在匹配字符串的时候,有时候需要需要引用变量. $pid=1220 eval "ps aux | awk '/$pid/'" 关于 eval eval 执行原理是先...
  • sed 命令使用变量来查找

    千次阅读 2014-02-24 15:00:30
    上网查了半天,用sed 怎么使用变量,发现他们用的都是很正常,$p是连在一起的,让我误以为$p是文章的结尾。。。。 错误日志:sed: -e expression #1, char 1: unknown command: `"' 记录下,以便忘记。 ...
  • sed中传递变量进行替换

    千次阅读 2020-04-20 16:04:36
    sed命令传递变量 例如:修改配置文件某一个变量的值 配置文件如下: toney@ubantu:/mnt/hgfs/em嵌入式学习记录/shell/shell脚本常见用法$ cat common_usage.log PRODUCT_TYPE=NGFW_V2_3 PLATFORM=x86_64 NGTOS_...
  • linux下shell脚本中sed命令使用变量

    万次阅读 2018-03-21 16:50:32
    用linpack做测试,写了一个脚本, 因为每次可修改的参数写在了配置文件里,所以脚本里用sed命令来修改配置文件#测试次数echo “Input Number of tests:”read numt#每次测试的数据规模,测试次数有多少次,这里应该...
  • sed中使用shell变量

    2018-04-10 11:23:00
    假设希望在 file_to_modified 文件最后新增一行以下信息:传入 shell 脚本文件的第一个参数,以及当前时间(YYYY-MM-DD HH:MMS) date "+%Y-%m-%d %H:%M:%S" 以上命令可以...file_to_modified 使用 sed 在文件末尾新增...
  • sed命令中使用变量

    万次阅读 2018-08-13 19:34:43
    有如下问题, 在使用sed命令替换文件内容时, 要替换的内容是动态的, 简化如下: # 测试文件testfile.txt内容 # 目标: 将文件的apple都替换成grape, apple和grape都是变量 $ cat testfile.txt; echo; echo &quot...
  • sed 中使用shell变量

    2012-08-18 16:40:34
    举例说明:变量a和b,使用sed的替换命令将$a替换为$b 1.eval sed 's/$a/$b/' filename 2.sed "s/$a/$b/" filename 3.sed 's/'$a'/'$b'/' filename 4.sed s/$a/$b/ filename 转载于:https://blog.51c...
  • sed 命令中使用变量

    千次阅读 2018-02-26 12:10:00
    sed命令中使用变量的三种方式 文件 name.txt 中内容: name=rose 通过update.sh把name.txt文件中的rose改成tomas 方式一: update.sh文件中的内容: #!/bin/bash name=tomas sed -i 's/rose/'"$...
  • linux sed环境变量 我一直在玩我几个月前写的BBC足球数据集 ,我想编写一些代码来使用导入脚本并将远程URI的所有实例替换为文件系统路径。 例如,导入文件包含与以下内容相似的几行: LOAD CSV WITH HEADERS ...
  • sed使用变量

    2013-02-27 11:14:05
    sed作为一种非交互式上下文编辑器,不改变原文的情况下进行文本行的处理并输出。实验需求 如何在sed中使用定义的变量?实验准备 有一文本tmp.txt,内容如下...
  • 使用格式: sed 参数1 ' 参数2 ' 参数2引用shell变量的方法: 只需将单引号变为双引号即可

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 63,706
精华内容 25,482
关键字:

sed中使用变量