Eu tenho procurado em todos os lugares. Não encontrou a resposta, então estou olhando para você!
O programa no meu trabalho gera muitos 10 a 50% de arquivos*.pc
com estrutura de pastas:
RESULTS/MODEL_Y0/Positioning_1.pc
RESULTS/MODEL_Y0/SK312_2SK_Y0_2012.pc
RESULTS/MODEL_Y100/Positioning_2.pc
RESULTS/MODEL_Y100/SK312_2SK_Y100_2012.pc
RESULTS/MODEL_Y250/Positioning_45.pc
RESULTS/MODEL_Y250/SK312_2SK_-Y575_2012.pc
Cada arquivo PC
tem dentro de caminhos absolutos começando na linha xxx (nem sempre 101, mas é sempre a segunda ocorrência da linha INCLU
word) como:
INCLU / Positioning_1.pc
INCLU / /ST/statika/AGP-Pedestrian_Ansa-Meta/SK312_2SK_xxx/SK312_SERIE.inc
INCLU / /ST/statika/AGP-Pedestrian_Ansa-Meta/SK312_2SK_xxx/SK312_xPL_impactor.inc
INCLU / /ST/statika/AGP-Pedestrian_Ansa-Meta/SK312_2SK_xxx/SK312_materials.inc
Eu preciso alterar essas linhas de caminho absoluto para parentesco como:
INCLU / Positioning_1.pc
INCLU / ../../SK312_SERIE.inc
INCLU / ../../SK312_xPL_impactor.inc
INCLU / ../../SK312_materials.inc
O que eu fiz escrevendo um script colocado acima de RESULTS
folder: (parte do script)
grep -rl "${SEARCH}" --include \*.pc ./ | xargs sed -i "s#${SEARCH}#${REPLACE}#g"
onde:
$SEARCH = /ST/statika/AGP-Pedestrian_Ansa-Meta/SK312_2SK_xxx/
$REPLACE = ../../
MAS aqui está o problema. Quando operando de mais de 81 caminhos de chars , o programa gerará os arquivos .pc
no mesmo padrão de estrutura de pastas, mas dentro do arquivo PC
, os caminhos absolutos são separados por nova linha por -
na posição 81. char:
INCLU / Positioning_1.pc
INCLU / /ST/statika/uziv/JVERNER/PROJEKTY/Ansa/AGP-Pedestrian_Ansa-Meta/SK312_2S-
K_xxx/SK312_SERIE.inc
INCLU / /ST/statika/uziv/JVERNER/PROJEKTY/Ansa/AGP-Pedestrian_Ansa-Meta/SK312_2S-
K_xxx/SK312_xPL_impactor.inc
INCLU / /ST/statika/uziv/JVERNER/PROJEKTY/Ansa/AGP-Pedestrian_Ansa-Meta/SK312_2S-
K_xxx/SK312_materials.inc
onde:
$SEARCH = /ST/statika/uziv/JVERNER/PROJEKTY/Ansa/AGP-Pedestrian_Ansa-Meta/SK312_2SK_xxx/
Aqui está o problema. Meu script não vê a variável $SEARCH
. O problema ainda maior é que o caminho pode ter mais de 180 caracteres, portanto, haverá um caminho de três linhas com dois -
divisores.
Não consigo compreender como escrever um script que funcione com essas multilinhas para que a variável de caminho seja encurtada para ../../SK312_*.inc
como antes com um caminho curto de uma linha absoluta.