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.