在使用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命令,双引号比单引号少绕一些弯子
分享到:
相关推荐
在本书中,你将了解到基本的sed命令语法,如使用正则表达式进行匹配,如何使用地址范围来操作特定行,以及如何编写脚本来自动化处理流程。 Awk,全称“Aho, Weinberger, and Kernighan”的首字母,是一种编程语言,...
13. **读取外部文件**:使用`r`命令读取外部文件内容。 - 示例:`sed '/wangpan/r file' example.file` - 解析:如果当前行包含“wangpan”,则读取file的内容并追加到该行后面。 14. **写入文件**:使用`w`命令...
- `-i` 或 `--replace`: 使用特定的替换字符串来替换每个输入项,例如`{}` - `-0` 或 `--null`: 使用`\0`作为输入项的分隔符,这对于处理包含空格或者特殊字符的文件名特别有用。 在提供的压缩包文件中,我们看到有...
根据提供的文件信息,我们可以归纳出一系列关于sed与awk在Linux/Unix系统下的使用方法与技巧。下面将详细解析这些知识点: ### sed 常用命令与应用 #### 1. 删除空行 ``` sed '/^$/d filename' ``` 这条命令会删除...
- 内建命令和外部命令的区分,以及它们在脚本中的使用。 - 外部过滤器、程序与命令的作用和用法。 - 系统命令和高级命令的介绍,如`find`、`sed`、`awk`等。 7. **高级话题** - 正则表达式的使用,它是文本匹配...
- 可以将sed命令保存到文件中,然后使用`sed -f scriptfile file`执行。 - **写输出文件**: - 使用`sed 's/pattern/replacement/' file > newfile`重定向输出到新文件。 **5.4 总结** - 掌握sed的基本使用方法。...
5. 具体命令和工具的使用,例如Sed和Awk命令、I/O重定向、命令行选项、重要的文件和系统目录、本地化和历史命令等。 6. 如何在Windows环境下使用Shell脚本。 7. Bash版本的对比,包括Bash版本2和版本3的区别。 8. ...
作者详细解释了变量替换、变量赋值以及Bash变量的类型无关特性。此外,还介绍了基本命令和复杂命令、时间/日期命令、文本处理、文件和归档命令、通讯命令等。 进阶部分讨论了变量重游、操作字符串、参数替换、内建...
$( )、$(( ))、$[ ]和$[[ ]]分别用于命令替换、算术运算、算术表达式和条件测试表达式,${ }用于变量替换和截取。 四、条件测试与条件判断 条件测试用于检查表达式是否为真,包括文件、字符串、数字等条件。if语句...
4. **调用其他程序**:批处理可以使用 `call` 命令来运行其他批处理文件,或者使用 `start` 命令启动外部程序。 5. **文本处理命令**:虽然Windows批处理没有像Unix的sed那样强大的文本处理能力,但仍然提供了`find...
本章会讲述sed的基本工作原理,如模式空间、地址范围和命令,以及如何通过sed实现文本替换、删除和插入等操作。 第14章:环境和shell变量 环境变量是影响shell行为的关键因素,而shell变量则用于存储脚本运行时的...
在IT领域,Shell命令是Linux或Unix操作系统中的一个强大工具,它允许用户与操作系统进行交互,执行各种任务,如文件管理、系统控制以及自动化工作流程。"shell命令学习资料"这个压缩包包含了丰富的教程和指南,帮助...
- **显示选项**:如`set -v`显示命令执行过程。 - **改变选项**:如何修改Bash的行为设置。 #### 四、正则表达式 - **正则表达式**: - **什么是正则表达式**:一种强大的文本匹配工具。 - **正则表达式...
- **变量替换**:通过`${variable}`形式访问变量值。 - **变量赋值**:使用`variable=value`的形式赋值。 - **变量类型**:Bash中的变量不区分类型,所有变量都是字符串类型。 - **特殊变量**:如 `$0` 表示当前脚本...
- 外部命令: 位于系统路径中的可执行文件。 通过以上总结, 我们可以看到Linux提供了丰富的命令和工具, 用于文件管理、文本处理、网络配置等多种场景, 是一个非常强大的操作系统。熟练掌握这些命令, 对于Linux用户...
接着,书中详细介绍了特殊字符、变量和参数的使用,包括变量替换、变量赋值,以及Bash变量不区分类型的特性。此外,还涉及了引用、退出状态码、条件判断、操作符和数字常量等基础知识点。 进阶部分的内容包括了变量...