gpt4 book ai didi

linux - 根据unix中附加文件的行数将文件附加到多个文件中

转载 作者:太空宇宙 更新时间:2023-11-04 03:56:36 28 4
gpt4 key购买 nike

我有一个场景,文件夹中有很多文件,我需要所有文件采用附加文件阈值为 5000 的格式,如果超过该阈值,则应创建一个新文件...对于新文件,阈值也应为 5000。已尝试以下逻辑,该逻辑仅适用于第一个附加文件。

ls -ltr *re.txt | awk '{print $9}' > files.txt 

touch file_int.txt
touch file_count.txt
for file in `cat files.txt`
do
cat file_count.txt >> file_int.txt
count=`wc -l < file_int.txt`
count1=`wc -l < $file`
count3=`expr $count + $count1`
file_date_time=file_`date +%H_%M_%S_%N`.txt
if [ $count3 -gt 5000 ]
then
cat $file >> $file_date_time
cat $file_date_time > file_int.txt
else
cat $file >> file_count.txt
fi
done

最佳答案

您可能想考虑使用 split 命令:

split -l 5000 bigfile.txt `date +%H_%M_%S`

文件名可能不完全是您需要的,但 split 会将您的文件分成 5000 行 block 。

您可以像这样重写脚本:

#!/bin/bash

mkdir to_delete
for file in *re.txt
do
split -l 5000 $file ${file}_`date +%H_%M_%S_`
mv $file to_delete/.
done

如果工作正常,您就可以删除 to_delete 目录的内容。

关于linux - 根据unix中附加文件的行数将文件附加到多个文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24483308/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com