bash - 来自命令行

时间:2016-05-19 13:08:01

标签: bash ssh wget cat

我试图做这样的事情:

wget -O - http://example.com/myfolder/myfile | ssh mypc 'cat > /tmp/myfile'

请注意' myfile'是wget和cat命令中使用的名称。所以,我的问题是,我是否可以将正则表达式应用于http://example.com/myfolder/myfile,以便将其传递给cat命令,除了文件名(在本例中为m文件)之外删除所有内容。长话短说,我想有一个输入来为这两个命令提供第二个正则表达式的帮助,如:

wget -O - http://example.com/myfolder/myfile | ssh mypc 'cat > /tmp/regex(http://example.com/myfolder/myfile, last_occurrence_of(/))'

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您可以使用basename命令:

 url=http://example.com/myfolder/myfile; wget -O - $url | ssh mypc "cat > /tmp/$(basename $url)"

您还可以使用bash运算符##

 url=http://example.com/myfolder/myfile; wget -O - $url | ssh mypc "cat > /tmp/${url##*/}"

在这种情况下,正则表达式为*/