【发布时间】:2011-09-29 03:10:15
【问题描述】:
我正在编写一个 shell 脚本,需要一些帮助。
此脚本将文件名作为输入,并根据某些逻辑修改该输入文件。
现在,这个文件将只修改特定的行,不过我会知道行号。
那么在知道了行号之后,如何在行尾追加一些文本呢?
每行要附加的文本会不断变化。
示例:输入文件包含文件名列表。
输入文件为abc.txt,内容为:
a.c;
b.c;
c.c;
d.c;
这个 abc.txt 是脚本的输入,脚本应该从 abc.txt 中提取文件名并检查文件在指定目录中的位置。
如果文件在那个位置,我有另一个脚本给出目录的名称。
如果其他脚本的输出是某个文件夹名称,那么它应该修改输入文件。
例如,如果目录“somefolder1”和“somefolder2”中存在 a.c 和 c.c 文件(分别),则预期输出为:
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
【问题讨论】:
-
这个太含糊了,举个输入和期望输出的例子。
-
我为您格式化了您的代码。请使用格式代码按钮“
{}”而不是<code>标签。