【发布时间】:2019-10-08 01:58:49
【问题描述】:
我有一个脚本,我需要读取文件的每一行,并将这些行单独打印到它们自己的基于行号的子目录中。
我有一个名为 input.data 的文件,其中有一个我需要更改的数字并将该文件的副本放入如下目录:
输入数据:
60 13 44.375 3 500 1.8
大小.txt:
44.732
44.733
44.823
44.532
我需要取第三个 input.data,将其替换为 sizes.txt 的第 1 行,并将其放在名为 frame0001 的目录中,然后对 sizes.txt 文件的其余行执行相同操作,以便它以格式结束
frame0001/input.data
frame0002/input.data
frame0003/input.data
...
我尝试在 for 循环中使用 awk、grep 和 echo 的组合,但我不知道如何让 awk 将 NR 作为 awk 之外的变量的值。
我用过:
mkdir $(printf "frame%04i" $(seq 1 475))
制作目录frame0001-frame0475
然后我用了:
i=1; for file in frame*; do cp "input.data" $(printf "frame%04i/a.out" "$i"); i=$((i+1)); done
将 input.data 文件原样复制到每个目录中,但是手动编辑每个文件需要很长时间。我想自动化这个过程,以便能够读取 sizes.txt 文件,并更改每个目录中的 input.data 文件,或者先编辑 input.data 文件然后放置在每个目录中。
【问题讨论】:
标签: bash for-loop awk grep printf