我有一个如下所示的文件结构:
浪涌/ Track_000000 / 000_extracted.csv
其中零可以替换为任何数字值
文件000_extracted.csv如下所示:
Timestep ElementID SE
1 100 .5
2 100 1.3
3 100 .7
4 100 .2
理想情况下,我希望得到的结果文件如下所示:
Track Timestep ElementID SE
0000000 1 100 .5
0000000 2 100 1.3
0000000 3 100 .7
0000000 4 100 .2
0000000是父目录名称的7位数字跟踪代码。
首先,我想将目录名称(Track_000000)附加到文件名。所以它会从212_extracted.csv转到Track_000000_212_extracted.csv。
我试过了:
for i in 'ls ./Surge/'
do
for j in 'ls ./Surge/$i/'
do
mv -v './Surge/$i/*.csv' './Surge/$i/$i-*.csv'
done
done
这不起作用。虽然$ i应该是Track_0000000,而是告诉我它是/ Surge /.
任何帮助都将不胜感激。
谢谢, ķ
答案 0 :(得分:2)
这些方面的东西:
for dir in /Surge/*; do
prefix=$(basename $dir)
trk=${prefix#Track_}
for file in $dir/*.csv; do
awk '{ print TRK, " ", $0 }' TRK=$trk < $file > ${prefix}_${file}
done
done
答案 1 :(得分:0)
使用后撇号:`而不是':
for i in `ls ./Surge/`; do
for j in `ls ./Surge/$i/`; do
mv -v './Surge/$i/*.csv' './Surge/$i/$i-*.csv'
done
done