这就是我想要的:
echo "abc" | sed 's/a/b/g'
但如果我这样写:
sed 's/a/b/g' "abc"
它会提醒我:
sed: abc: No such file or directory
让sed
将abc
视为字符串而不是文件的正确命令是什么?
答案 0 :(得分:2)
您可以尝试:
echo "abc" | sed 's/a/b/g'
或"这里是字符串":
sed 's/a/b/g' <<< "abc"
更多示例&amp;详情:http://linux.die.net/abs-guide/x15683.html和
答案 1 :(得分:1)
该命令已经是正确的,但您对管道存在一些误解。让我们看一个例子:
我有一个 abc 的文件作为内容,所以命令:
Router = Backbone.Router.extend({
routes: {
'':'index',
'#':'index',
'events/*event' : 'events'
},
index: function(){
this.indexView = new VistaIndex();
},
events: function(params) {
if( this.indexView )
this.indexView.destroy_view()
this.eventView = new EventView({currentEvent: params})
}
});
产生
cat test | sed 's/a/b/g'
这里没有错。现在,检查一下:
bbc
因此,当您使用管道时,您正在使用stdin(标准输入)和标准输出(标准输出)。
sed 命令接受这两个文件作为参数或标准输入。 你写的例子是错的,因为&#34; abc&#34; 不是文件。
更多信息: