附加匹配文字的单词

时间:2017-06-27 14:46:11

标签: linux shell

我有文件test.txt和文件包含一些行 因此,一旦验证完成,我必须在单词的末尾添加“完成”, 初始文本文件

的test.txt

ABC

BCD

CDE

预期产出

的test.txt

abc DONE

bcd DONE

cde DONE

以下是我正在使用的代码

 k=0
 for i in `cat test.txt` 
 do 
 if [[ $k -le 5 ]];
 then
 echo $i >> XYZ
 k=`expr $k + 1`
 sed  '/$i/a "DONE"' test.txt
 fi;
 done

但我在test.txt中看不到任何变化。知道怎么做

1 个答案:

答案 0 :(得分:1)

你有两个主要缺陷; bash变量在字面上保留在单引号内,并且您没有使用 sed 的就地替换-i标记。

#!/bin/bash
k=0
for i in `cat test.txt`
do
        if [[ $k -le 5 ]];
        then
                echo "$i" >> XYZ
                k=`expr $k + 1`
                sed -i 's/'"$i"'/'"$i"' DONE/' test.txt
        fi;
done

在阅读文件的同时编辑文件时要小心。