如何根據修改日期合併多個文件並忽略每個文件中的第一行

如何根據修改日期合併多個文件並忽略每個文件中的第一行

我有以下文件:

-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、姓名、工作、地址)。

例如,這就是我在腳本之後想要的:

May_1_file_after_concatenate:

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或手動)在較小的檔案組上呼叫腳本。

轉換日期格式應該很容易:-)

相關內容