无法在偏移序列的终端输出中附加引号

无法在偏移序列的终端输出中附加引号

我在桌面上的文件中保存了以下偏移地址。

eagle@max-pc:~$cat ~/Desktop/offset.txt 
0x00000000
0x00000419
0x0000073d
0x00000a24
0x000011cf
0x0000139c
...

现在我想使用终端在每个偏移地址的末尾添加引号,每当我尝试时我的输出都会变成

eagle@max-pc:~$for i in `cat ~/Desktop/offset.txt `; do echo $i"\"";done

现在输出,

"x00000000
"x00000419
"x0000073d
"x00000a24
"x000011cf
"x0000139c
"x00001568

你能告诉我我哪里做错了吗?我尝试了各种方法,包括 echo 及其参数的不同组合、printf。

答案1

您可以简单地使用 sed。

sed 's/$/"/' ~/Desktop/offset.txt

$匹配行尾。因此,通过用双引号替换最后一个存在的边界,您将获得所需的输出。

例子:

$ echo '0x00000000
> 0x00000419' | sed 's/$/"/'
0x00000000"
0x00000419"

添加内联编辑-i参数以保存对该文件所做的更改。

sed -i 's/$/"/' ~/Desktop/offset.txt

awk 中的一些其他方法。

$ echo '0x00000000
0x00000419' | awk '{$0=$0"\""}1'
0x00000000"
0x00000419"
$ echo '0x00000000
0x00000419' | awk '{sub(/$/, "\"")}1'
0x00000000"
0x00000419"
$ echo '0x00000000
0x00000419' | awk '{print $0"\""}'
0x00000000"
0x00000419"

或者

while read -r i; do sed 's/$/"/' <<< "$i"; done < ~/Desktop/offset.txt

相关内容