我在桌面上的文件中保存了以下偏移地址。
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