请指教如何做 - (此操作是在 Linux 机器上进行的)
为什么我用 echo 添加的字符串“append”位于“spb_IP=172.17.100.122”行之后
而不是在“spb_IP=172.17.100.122”这一行下面????
更多文件
spa_IP=172.17.100.121
spb_IP=172.17.100.122
echo“附加”>>文件
更多文件
spa_IP=172.17.100.121
spb_IP=172.17.100.122append this
答案1
这是因为该文件没有以 . 结尾\n
。
hexdump -C file
00000000 73 70 61 5f 49 50 3d 31 37 32 2e 31 37 2e 31 30 |spa_IP=172.17.10|
00000010 30 2e 31 32 31 0a 73 70 61 5f 49 50 3d 31 37 32 |0.121.spa_IP=172|
00000020 2e 31 37 2e 31 30 30 2e 31 32 32 |.17.100.122|
注意文件以 0x32 结尾,这是 ASCII 码2
当你附加它时它变成
hexdump -C file
00000000 73 70 61 5f 49 50 3d 31 37 32 2e 31 37 2e 31 30 |spa_IP=172.17.10|
00000010 30 2e 31 32 31 0a 73 70 61 5f 49 50 3d 31 37 32 |0.121.spa_IP=172|
00000020 2e 31 37 2e 31 30 30 2e 31 32 32 61 70 70 65 6e |.17.100.122appen|
00000030 64 0a
请注意,正如您所观察到的,122 直接进入附加122append
要解决你的“问题”,你需要
echo -e "\nappend"
添加缺失的\n
。
hexdump -C file
00000000 73 70 61 5f 49 50 3d 31 37 32 2e 31 37 2e 31 30 |spa_IP=172.17.10|
00000010 30 2e 31 32 31 0a 73 70 61 5f 49 50 3d 31 37 32 |0.121.spa_IP=172|
00000020 2e 31 37 2e 31 30 30 2e 31 32 32 0a 61 70 70 65 |.17.100.122.appe|
00000030 6e 64 0a |nd.|
现在,122 和附加部分之间有一个.
,代表 0x0a(ASCII 换行符)字符。