我有以下文件:
-rw-r--r-- 1 xyz xyz 122 May 01 01:00 Test1
-rw-r--r-- 1 xyz xyz 122 May 01 01:00 Test2
-rw-r--r-- 1 xyz xyz 122 May 05 05:00 Test3
-rw-r--r-- 1 xyz xyz 122 May 05 05:00 Test4
文件内容包含一行描述,后面跟着数据,以逗号分隔。例如:
测试1:
ID, Name, Job, Address
1111, John, Janitor, 1234 Corson Ave
测试2:
ID, Name, Job, Address
2222, Tim, Cashier, 3245 Elliot St
有人能否建议一个命令,该命令可以根据修改日期连接上述文件,同时忽略文件中的第一行,即描述(ID,姓名,工作,地址)。
例如,这是我想要的脚本:
连接后 5 月 1 日的文件:
1111, John, Janitor, 1234 Corson Ave
2222, Tim, Cashier, 3245 Elliot St
同样的事情May5_file_after_concatenate
。我的目录将包含数百万个文件。我需要它根据修改日期自动排序并相应地连接它们。
我在 Centos 7 上。
答案1
在 中bash
,您可以使用以下脚本:
#! /bin/bash
for file in "$@" ; do
date=$(stat -c%y "$file" | cut -f1 -d' ')
tail -n+2 "$file" >> "$date"
done
它遍历给定的文件,从中检索最后的修改日期,然后将从第 2 行开始的所有内容添加到以日期命名的文件中。
如果命令行或参数中有两个文件需要容纳,请按顺序(使用xargs
或手动)对较小的文件组调用脚本。
转换日期格式应该很容易:-)