Linux

如何連接目錄中的前 100 個文件?

  • July 1, 2022

我在一個目錄中有 4000 個具有唯一文件名的文本文件。

是否有任何Linux 命令可以僅連接 1-100 個文件。

cat 1.txt ... 100.txt > 1.100.txt
cat 101.txt ... 200.txt > 2.200.txt
.......
.......
cat 3901.txt ... 4000.txt > 40.4000.txt

請提出建議。

head只能選擇 100 個文件。

例如:

cat $(ls -1 --sort=time | head -n 100) > 1.100.txt

(您可以將其更改--sort為其他內容或將其刪除以按名稱排序)

如果文件名中可能出現空格或換行符,則不能使用lsfind -print0安全(使用 null 作為分隔符):

find . -type f -print0 | head -z -n 100 | xargs -0 cat > 1.100.txt

zsh

files=( *(N.n) ) i=0
while (( $#files )) {
 () {cat -- $@ > $((++i)).$@[-1]} $files[1,100]
 files[1,100]=()
}

nglob 限定符按數字對文件名進行排序,您可以按從最舊到最新的修改時間將其更改為Omrder 。O``m

引用自:https://unix.stackexchange.com/questions/708202