|
10.10.5 从shell向sed传值
要从命令行中向s e d传值,值得注意的是用双引号,否则功能不执行。
10.10.6 从sed输出中设置shell变量
从s e d输出中设置s h e l l变量是一个简单的替换过程。运用上面的例子,创建s h e l l变量
N E W- N A M E,保存上述s e d例子的输出结果。
10.11 快速一行命令
下面是一些一行命令集。([ ]表示空格, [ ]表示t a b键)
‘s / \ . $ / / g’ 删除以句点结尾行
‘-e /abcd/d’ 删除包含a b c d的行
‘s / [ ] [ ] [ ] * / [ ] / g’ 删除一个以上空格,用一个空格代替
‘s / ^ [ ] [ ] * / / g’ 删除行首空格
‘s / \ . [ ] [ ] * / [ ] / g’ 删除句点后跟两个或更多空格,代之以一个空格
‘/ ^ $ / d’ 删除空行
‘s / ^ . / / g’ 删除第一个字符
‘s /CO L \ ( . . . \ ) / / g’ 删除紧跟C O L的后三个字母
‘s / ^ \ / / / g’ 从路径中删除第一个\
‘s / [ ] / [ ] / / g’ 删除所有空格并用t a b键替代
‘S / ^ [ ] / / g’ 删除行首所有t a b键
‘s / [ ] * / / g’ 删除所有t a b键
102 第二部分文本过滤
下载
在结束这一章前,看看一行脚本的一些例子。
1. 删除路径名第一个\符号
将当前工作目录返回给s e d,删除第一个\:
2. 追加/插入文本
将"Mr Wi l l i s "字串返回给s e d并在M r后而追加" B r u c e "。
3. 删除首字符
s e d删除字符串“a c c o u n t s . d o c”首字符。
4. 删除文件扩展名
s e d删除“a c c o u n t s . d o c”文件扩展名。
5. 增加文件扩展名
s e d附加字符串“. d o c”到字符串“a c c o u n t s”。
6. 替换字符系列
如果变量x含有下列字符串:
如果要实现下列转换:
s e d命令是:
10.12 小结
s e d是一个强大的文本过滤工具。使用s e d可以从文件或字符串中抽取所需信息。正像前面
讲到的,s e d不必写太长的脚本以取得所需信息。本章只讲述了s e d的基本功能,但使用这些功
能就可以执行许多任务了。
如果使用s e d对文件进行过滤,最好将问题分成几步,分步执行,且边执行边测试结果。
经验告诉我们,这是执行一个复杂任务的最有效方式。 |
|