`

sed当中使用变量替换以及执行外部命令

 
阅读更多
在使用sed对日志或者其它文本进行parse的过程当中,有时候我们需要引用外部变量的值,

或者获取一个shell命令执行的结果,以便达到更加可观的输出结果。这里介绍如何做到。
sed中使用变量替换

1.sed命令使用双引号的情况下,使用$var直接引用

$ echo|sed "s/^/$RANDOM.rmvb_/g"
29328.rmvb_


# 上面例子引用了一个环境变量$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语句里面,变量替换或者执行shell命令,双引号比单引号少绕一些弯子
分享到:
评论

相关推荐

    linuxsed与awk第三版

    在本书中,你将了解到基本的sed命令语法,如使用正则表达式进行匹配,如何使用地址范围来操作特定行,以及如何编写脚本来自动化处理流程。 Awk,全称“Aho, Weinberger, and Kernighan”的首字母,是一种编程语言,...

    有关sed的运用

    13. **读取外部文件**:使用`r`命令读取外部文件内容。 - 示例:`sed '/wangpan/r file' example.file` - 解析:如果当前行包含“wangpan”,则读取file的内容并追加到该行后面。 14. **写入文件**:使用`w`命令...

    可在windows使用的类linux工具xargs

    - `-i` 或 `--replace`: 使用特定的替换字符串来替换每个输入项,例如`{}` - `-0` 或 `--null`: 使用`\0`作为输入项的分隔符,这对于处理包含空格或者特殊字符的文件名特别有用。 在提供的压缩包文件中,我们看到有...

    sed 使用手册linux unix 下常用的文本处理工具。用来处理格式化文本

    根据提供的文件信息,我们可以归纳出一系列关于sed与awk在Linux/Unix系统下的使用方法与技巧。下面将详细解析这些知识点: ### sed 常用命令与应用 #### 1. 删除空行 ``` sed '/^$/d filename' ``` 这条命令会删除...

    bash编成指南共9章

    这一部分详细讲解了特殊字符、变量和参数的使用,包括变量替换、赋值、无类型特性,以及引用和转义。此外,还讨论了退出状态、条件测试(如文件测试操作、比较操作等)和操作符。 第三部分:超越基本 在这一阶段,...

    高级bash脚本指导

    - 内建命令和外部命令的区分,以及它们在脚本中的使用。 - 外部过滤器、程序与命令的作用和用法。 - 系统命令和高级命令的介绍,如`find`、`sed`、`awk`等。 7. **高级话题** - 正则表达式的使用,它是文本匹配...

    精通linux+shell编程教程pdf完整版.pdf

    5. 具体命令和工具的使用,例如Sed和Awk命令、I/O重定向、命令行选项、重要的文件和系统目录、本地化和历史命令等。 6. 如何在Windows环境下使用Shell脚本。 7. Bash版本的对比,包括Bash版本2和版本3的区别。 8. ...

    linux-shell编程教程pdf完整版.pdf

    作者详细解释了变量替换、变量赋值以及Bash变量的类型无关特性。此外,还介绍了基本命令和复杂命令、时间/日期命令、文本处理、文件和归档命令、通讯命令等。 进阶部分讨论了变量重游、操作字符串、参数替换、内建...

    shell自研基础学习笔记

    $( )、$(( ))、$[ ]和$[[ ]]分别用于命令替换、算术运算、算术表达式和条件测试表达式,${ }用于变量替换和截取。 四、条件测试与条件判断 条件测试用于检查表达式是否为真,包括文件、字符串、数字等条件。if语句...

    批处理之家论坛下载批处理实例

    4. **调用其他程序**:批处理可以使用 `call` 命令来运行其他批处理文件,或者使用 `start` 命令启动外部程序。 5. **文本处理命令**:虽然Windows批处理没有像Unix的sed那样强大的文本处理能力,但仍然提供了`find...

    linux与unix shell编程指南.rar

    本章会讲述sed的基本工作原理,如模式空间、地址范围和命令,以及如何通过sed实现文本替换、删除和插入等操作。 第14章:环境和shell变量 环境变量是影响shell行为的关键因素,而shell变量则用于存储脚本运行时的...

    shell命令学习资料

    在IT领域,Shell命令是Linux或Unix操作系统中的一个强大工具,它允许用户与操作系统进行交互,执行各种任务,如文件管理、系统控制以及自动化工作流程。"shell命令学习资料"这个压缩包包含了丰富的教程和指南,帮助...

    Bash Beginners Guide(中文版) - Machtelt Garrels

    - **显示选项**:如`set -v`显示命令执行过程。 - **改变选项**:如何修改Bash的行为设置。 #### 四、正则表达式 - **正则表达式**: - **什么是正则表达式**:一种强大的文本匹配工具。 - **正则表达式...

    高级Bash脚本编程指南

    - **变量替换**:通过`${variable}`形式访问变量值。 - **变量赋值**:使用`variable=value`的形式赋值。 - **变量类型**:Bash中的变量不区分类型,所有变量都是字符串类型。 - **特殊变量**:如 `$0` 表示当前脚本...

    linux操作.docx

    - 外部命令: 位于系统路径中的可执行文件。 通过以上总结, 我们可以看到Linux提供了丰富的命令和工具, 用于文件管理、文本处理、网络配置等多种场景, 是一个非常强大的操作系统。熟练掌握这些命令, 对于Linux用户...

    高级Bash脚本编程指南[1].3.9.1 (杨春敏 黄毅 译)【无重复页】.pdf

    接着,书中详细介绍了特殊字符、变量和参数的使用,包括变量替换、变量赋值,以及Bash变量不区分类型的特性。此外,还涉及了引用、退出状态码、条件判断、操作符和数字常量等基础知识点。 进阶部分的内容包括了变量...

Global site tag (gtag.js) - Google Analytics