Я пишу сценарий оболочки и мне нужна помощь.
Этот скрипт примет имя файла в качестве входного и изменит этот входной файл в соответствии с некоторой логикой.
Теперь этот файл будет изменен только в определенных строках, хотя я узнаю номер строки.
Итак, узнав номер строки, как добавить текст в конец этой строки?
Добавляемый текст будет изменяться для каждой строки.
Пример: входные файлы содержат список имен файлов.
Входной файл - abc.txt, с содержанием:
a.c;
b.c;
c.c;
d.c;
Этот abc.txt вводится в скрипт, скрипт должен выбрать имена файлов из abc.txt и проверить, где файлы присутствуют в указанном каталоге.
У меня есть другой скрипт, который дает имя каталога, если файл находится в этом месте.
Если вывод другого скрипта - это какое-то имя папки, он должен изменить входной файл.
Например, если файлы a.c и c.c присутствуют в директориях 'somefolder1' и 'Somefolder2' (соответственно), то ожидаемый результат будет:
a.c;somefolder1;
b.c;
c.c;somefolder2;
d.c;
Я использую логику:
MAX_LINES=`wc -l ${CHECKOUT_FILE}.tmp |awk '{print $1}'`
COUNTER=0
#Logic
while [ $COUNTER -ne $MAX_LINES ]
do
COUNTER=`expr $COUNTER + 1`
LINE_READ=`sed -n ${COUNTER}p ${CHECKOUT_FILE}.tmp`
PROGRAM_NAME=`echo $LINE_READ | cut -f 1 -d ";" `
FOLDER_NAME=`${CLEARCASE}/somescript.sh ${PROGRAM_NAME} ${CHECKOUT_COUNTRY}`
if [ $FOLDER_NAME = 'NOTFOUND' ] ; then
echo $FOLDER_NAME
continue
else
sed -e '${COUNTER}s/$/${FOLDER_NAME};/' < ${CHECKOUT_FILE}.tmp > temp.txt
fi
done