2013-11-22 2 views
0

У меня есть файл структура, которая выглядит следующим образом:Linux заменить столбец файла с именем каталога родительского

Surge/Track_000000/000_extracted.csv

где нули можно заменить любой numberical значения

файлы 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 /.

Любая помощь будет оценена по достоинству.

Спасибо, K

ответ

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 
+1

вы предлагаете плохую практику ... не использовать 'вместо этого используйте скобки – SriniV

+1

Я настоятельно рекомендую больше не использовать обратную ссылку. У него так много недостатков, что его нельзя поощрять. Вместо этого используйте '$ (cmd)'. –

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 
+0

Это не работает для меня. Этот код хочет добавить еще один $ dir, кажется ... например, он продолжает говорить мне: bash: Track_1234566_Track_1234567/123_extracted_data.csv: нет такого файла или каталога. Это правда. Вместо этого он должен искать Track_1234567/123_extracted_data.csv. Благодарю. – kimmyjo221

Смежные вопросы