如何将多个文件复制到另一个文件夹中删除每个文件上的一些字符unix korn shell

时间:2018-02-12 23:24:42

标签: shell unix cp

我正在试图找出是否有办法将多个文件复制到文件夹并更改文件所具有的名称或模式。这是一个例子:

我有这种模式的文件:

file1_100.csv.12345
file2_100.csv.12345

我想将这些文件复制到另一个文件夹而不删除“.12345”,如下所示:

file1_100.csv
file2_100.csv

我只知道你可以这样做:

ls -l file* | awk -F. '{print $1 "." $2}'

然后你可以得到输出:

file1_100.csv
file2_100.csv

可以做类似的事情将文件复制到另一个目录吗?

1 个答案:

答案 0 :(得分:1)

   sed 's:\(regexp\):cp \1 dir_path/\1:g' | csh

例如

如果您的文件名为: file1 file2 ... fileN ,并且您想要将它们复制到名为 / home / kuku / 的目录中,并且您想添加一个 temp 的前缀到您的所有文件 temp_file1 temp_file2 ... temp_fileN

的每个文件
    # Using list of files
     sed 's:\(file.*\):cp \1 home/kuku/temp_\1:g' file_list.txt| csh


    #for pipe files that end with .12345
       printf '%s\n' *.12345 | sed 's:\(.*\)\(.12345\):cp \1\2 home/kuku/\1\n:g' | csh

1)printf '%s\n' *12345获取本地目录中以12345字符串

结尾的所有文件

2)我们sed打印cp file_name path/new_file_name

3)将字符串传递给csh shell,逐行执行