一个shell脚本,用于读取文件夹下文件的内容并将其写入文本文件

时间:2015-05-30 21:13:39

标签: shell scripting

我有53000个文件夹(命名为数字1,2,3 ......),每个文件夹中都有一个名为“prop”的文件。我需要将它们的数据收集到一个文本文件中。我用过那个命令。但是有些文件夹有一个空白的“prop”文件。我需要知道我的文本文件中哪些是空白的。

#!/bin/sh
a=0
while [ $a - le 53000]
do 
a= 'expr $a + 1'
cat $a/prop >> x.txt
done

2 个答案:

答案 0 :(得分:0)

这会将所有现有prop个文件的内容复制到x.txt。这也将在missing.txt

中添加详细说明任何丢失文件的消息
cat {1..53000}/prop >x.txt 2>missing.txt

例如,如果文件515/prop丢失,那么missing.txt中会有一行说明:

cat: 515/prop: No such file or directory

这需要bash或任何其他支持大括号扩展的高级shell。

答案 1 :(得分:0)

从包含编号文件夹的目录中,您可以{/ 3}}

## store data
resultValues <- data.frame(col1=c(40,70),col2=c(1710,2500),col3=c(580,280),col4=c(200,1050),col5=c(160,140),col6=c(260,10),col7=c(380,300),col8=c(380,600),col9=c(150,190));
colors <- c('red','orange','lightgreen','green','#00ff88','#0088ff','blue','purple','magenta');
colnames <- colnames(resultValues);

## widen right margin
par(mar=par('mar')+c(0,0,0,3));

## draw plot
max_y <- max(resultValues);
plot(resultValues$col1, type="o", col=colors[1], ylim=c(0,max_y), axes=FALSE, ann=FALSE, lwd=1.5);
axis(1, at=1:2, lab=c("2013", "2014"));
axis(2, las=1, at=250*0:max_y);
for (colname in colnames) lines(resultValues[[colname]], type="o", lwd=1.5, col=colors[match(colname, names(resultValues))]);
box();
legend(2.05, 2500, legend=names(resultValues), ncol=1, cex=1, fill=colors, xjust=0, xpd=TRUE);

示例:

find . -mindepth 1 -maxdepth 1 -type d '!' -exec test -e "{}/prop" ';' -print