如何读取Bash Shell中多个文件夹和子文件夹中的文件

schrodingerscat11

在目录〜/ main1 / sub1,〜/ main1 / sub2,〜/ main1 / sub3,...,〜/ main2 / sub1,〜/ main2 / sub2,...〜/ mainX中,有几个名为TESTFILE的文件/ subY其中mainX是主文件夹,subY是主文件夹内的子文件夹。每个主文件夹子文件夹的TESTFILE文件都具有相同的模式,但是每个文件中的数据都是唯一的。


现在,这就是我想要做的:

  1. 我想在每个〜/ mainX / subY的TESTFILE中读取一个特定的数字。

  2. 我想创建一个文本文件,其中每一行的格式如下:[mainX] [space] [subY] [space] [从TESTFILE读取的值]


有关TESTFILE和我想获取的数据的一些信息:

  1. 这是DASP程序VASP的OSZICAR文件
  2. OSZICAR中的行数在不同的文件夹-子文件夹组合中有所不同
  3. 我要获取的信息始终位于文件的最后两行
  4. 最后两行始终如下所示:

DAV:2 -0.942521930239E + 01 0.27889E-09 -0.79991E-13 864 0.312E-06
10 F = -.94252193E + 01 E0 = -.94252193E + 01 d E = -.717252E-07

或者通常,最后两行模式是:

DAV:一个BCDEF
F = ħ E0 = D E = Ĵ

斜体部分是不变的部分,黑体字变量是我想要的部分


有关主文件夹mainX和子文件夹subY的一些信息:

  1. 文件夹mainX和subY都是实数。

我想要的输出是:

假设mainX = {0.12,0.20,0.34,0.7}和subY = {1.10,2.30,4.50,1.00,2.78},〜/ 0.12 / 1.10 / OSZICAR的最后两行是上面的示例,我的输出文件应包含:

0.12 1.10 2 10 -.94252193E+01 -.94252193E+01 -.717252E-07    
...   
0.7 2.30 2 10 -.94252193E+01 -.94252193E+01 -.717252E-07
...
mainX mainY a g h i j

如何以最简单的方式做到这一点?我正在阅读grep,awk,sed,我非常不知所措。

汤姆·费内奇

您可以使用forbash中的一些循环来执行此操作

for m in ~/main*/; do
    main=$(basename "$m")
    for s in "$m"sub*/; do
        sub=$(basename "$s")
        num=$(tail -n2 TESTFILE | awk -F'[ =]+' 'NR==1{s=$2;next}{print s,$1,$3,$5,$8}')
        echo "$main $sub $num"
    done
done > output_file

我已经修改了从文件中提取数据的命令。它用于tail读取文件的最后两行。这些行将传递到awk,在此处使用任意数量的空格和=符号一起作为字段分隔符将它们分成多个字段。两行第一行中的第二个字段保存到变量中snext跳到下一行,然后打印您感兴趣的列。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

For循环多个文件夹中的文件-Bash Shell

如何在具有多个文件夹的文件夹中打开和显示多个文件的内容?

如何在Google云端硬盘中搜索子文件夹和子文件夹?

如何使用ZipOutputStream在Kotlin中压缩包含文件的文件夹和子文件夹?

如何使用电子循环浏览文件夹和子文件夹中的文件?

从Java中的多个文件夹读取多个txt文件

如何使用Powershell从文件夹的根目录中仅删除子文件夹和子文件夹的内容,而不删除单个文件

如何从Webpack JavaScript中的文件夹,子文件夹及其子文件夹动态获取文件

如何从Train,Test和Validation文件夹中的多个文件夹中拆分和复制文件

如何使bash代码对文件夹和子文件夹中的所有文件起作用?

如何使用Powershell计算文件夹和子文件夹中的文件

使用Python搜索(在文件夹和子文件夹中)并将文件读取到数据框列表中

如何将文件夹和子文件夹中的所有文件放入数组

读取多个文件夹中的图像

如何合并文件夹和子文件夹?

读取文件夹和子文件夹中的所有文件-进度和大小

如何递归地仅复制文件夹和子文件夹中的文件?

如何运行子文件夹中的多个.bat文件

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

从应用程序安装文件夹的子文件夹中读取文件

bash shell:递归地在文件夹和子文件夹中搜索列表中的文件

如何忽略提名文件夹中的_vti_cnf和_vti_pvt文件夹以及提名文件夹的所有子文件夹?

如何使用 Alfresco Rest API 上传文档中的文件夹和子文件夹?

如何将文件夹中的文件复制到多个文件夹中

从 Python 中的多个文件夹读取多个 CSV 文件?

如何重命名多个文件夹中的多个文件?

Bash/Shell 脚本修改文件夹和子文件夹中的文件,但不修改文件夹名称

如何遍历多个文件夹中的多个文件?

遍历文件夹中的文件,读取和分组文件