我试图在我拥有的文件的每一行的末尾追加一个索引变量。但是我不想丢失textFile中的转义字符,因此无法再次回显到文件中。
这是我尝试的内容:
while read p; do
tempCom+=$p
tempCom+=$indexVar
echo $tempCom >> otherFile.txt
tempCom=""
done < result.txt
我在追求的是:
Read:
"asdasdasdasdasdasd\ asdasd/asda"
"qweqweqweqweqweqwe\ qweqwe/qweq"
Output:
"asdasdasdasdasdasd\ asdasd/asda" 1
"qweqweqweqweqweqwe\ qweqwe/qweq" 2
请注意,indexVar是存储在别处的索引,并不一定与其追加的行相对应。
答案 0 :(得分:3)
您的问题很可能是引用问题。另请注意IFS=
语句中的-r
和read
选项。
while IFS= read -r p
tempCom+=$p$indexVar
printf '%s\n' "$tempCom" >> otherFile.txt # Observe the quotes
tempCom=
done < result.txt
答案 1 :(得分:2)
如果您只想将行号附加到最后,为什么不使用awk
?
awk '{print $0, "\t", NR}' < file.txt
编辑1:听起来你想使用paste(假设你想逐行加入)
paste file1.txt file2.txt > fileresults.txt
编辑2:您可以使用sed:
sed "s|$|${indexVar}|" input
答案 2 :(得分:1)
使用-r
命令的read
选项,以便保留反斜杠。
while read -r p; do