Terminal / Bash命令以递归方式将目录中的每个文件编入目录,并将前100行存储在与所选文件名称相同的文本文件中

问题描述

正如标题所述,我在远程服务器上有一个目录,其中有一堆巨大的文件。我只想对目录中每个文件的前100行进行CAT,并将其存储在本地目录中以.cat文件命名的.txt文件中。通过一个命令可以做到吗?还是bash脚本是必需的?

解决方法

#/usr/bin/bash

remote_dir="/home/gary/dir"

local_output_dir="/home/gary/data"

dir_listing="$(ssh user@host ls -Q $remote_dir)" 

echo DIR: $dir_listing

IFS='
'

for file in $dir_listing
do 
   echo Processing $file...
   ssh -q user@host "cat "${remote_dir}/$file" | head -100" \> "${local_output_dir}/hun.$file" 
done