首页 > 教育学习 > 为什么 > 如何保存shell中正则匹配的结果?

如何保存shell中正则匹配的结果?
2012-01-19 17:37:44   来源:   点击:

    如何保存shell中正则匹配的结果?举个例子,有个文件夹rootdir,该文件夹下有一些子文件夹,如a1,a2,a3,b1,b2,b3,这些子文件夹都有个名为data的文件,现在要把这些以a开头的子文件夹下的data文件都提取到另外一个文件夹下,并命名为a1_data,a2_data,a3_data,请问应该如何写这条命令 说明:因为rootdir和目的文件夹可能并不在一台机器上,所以可能需要用scp,比如rootdir在一个远端服务器上,而该命令只能在本地执行,因此下面这种方式是不可行的,因为无法用for file in dir的方法获得远端服务器目录中的文件。 cd rootdir for subdir in *: do if [[ $subdir =~ "a." ]] then .... fi done

    1 个答案

    • 答案 1:

      for file in ./a*/data; do scp -qr $file user@host.name:~/${file/\/data/_data}; done; if rootdir is on a remote host, try for file in `ssh user@host.name "ls /rootdir/a*/data"`; do scp -qr user@host.name:${file/:/} ${file/\/data/_data}; done;

相关热词搜索:

上一篇:有哪些值得推荐的详细解释“面向对象”这一概念的文章或书籍?
下一篇:你心目中目前最好的 IT 公司(包括外企)是哪个?为什么?