Mea*_*lpa 3 unix linux shell ed
这里需要一些基本的unix shell:
对于我看不到" - "目标的命令,比如ed:
print '%-2p\nq' | ed -s FILE
Run Code Online (Sandbox Code Playgroud)
我可以从某个cmd的stdout而不是FILE名称提供一个流作为要处理的数据:
SomeCMD | ed -s SOMETHING_MAGICAL <<< 'print '%-2p\nq'
Run Code Online (Sandbox Code Playgroud)
有可能吗?
ed从stdin读取它的命令,所以如果你的文件也在stdin上,你怎么工作?
事实上,你可以养活文件输入标准输入,如果您连接它的输出与单行
i
Run Code Online (Sandbox Code Playgroud)
在开始时,开始写入数据,然后附加一个.结束输入,然后是任何命令.您甚至可以将结果输出到stdout.请记住,如果文件中只有一行,只有一行,它就会中断.在里面.
所以如果文件input.file包含这个:
First line
Second line
Third line
Run Code Online (Sandbox Code Playgroud)
一个文件commands.list包含这个:
.
1d
1,$w /dev/stdout
Run Code Online (Sandbox Code Playgroud)
然后这个命令行......
echo i | cat - input.file commands.list | ed -s
Run Code Online (Sandbox Code Playgroud)
输出这个:
Second line
Third line
Run Code Online (Sandbox Code Playgroud)
我敢说tadaaaaa!?
注意:你可以防止单一的情况.文件中的行通过一个过滤掉任何这样的行的过滤器来管理文件,然后用ed命令再次取消它们.我把它留给你的聪明才智.
另一个注意事项:你真的应该使用sed这个,但我不能让它无法完成评论.
归档时间: |
|
查看次数: |
929 次 |
最近记录: |