循环输出到本地计算机

时间:2018-08-22 19:18:05

标签: ssh cygwin

我正在尝试读取服务器上的某些文件,并且仅将这些文件中的某些列写入本地计算机。我试图在for循环中执行此操作,以避免为每个文件输入密码。这是到目前为止我能完成的工作。

以下代码可以工作,但是将所有输出写入单个文件,由于文件太大,因此无法管理。

ssh user@xx.xxx.xxx.xx 'for loc in /hel/insur/*/201701*; do zcat $loc | grep -v NUMBER | awk -F',' -v OFS="," '\''{print $1,$2,$3,$4,$5}'\'' | gzip; done'  > /cygdrive/c/Users/user1/Desktop/test/singlefile.csv.gz

因此,我尝试按如下所示分别编写每个文件,但这给我一个错误,提示它找不到该位置(可能是因为我将它丢到了远程服务器上)。

ssh user@xx.xxx.xxx.xx 'for loc in /hel/insur/*/201701*; do zcat $loc | grep -v NUMBER | awk -F',' -v OFS="," '\''{print $1,$2,$3,$4,$5}'\'' | gzip > /cygdrive/c/Users/user1/Desktop/test/`echo $loc | cut -c84-112` ; done'

关于如何解决此问题的任何想法?

0 个答案:

没有答案