1

我 在第 1 行和第 2 列有一个包含
“0x0003FFB0”的文件 address.txt 我想将它粘贴到第 20 行和第 58 列的另一个文件“linker.txt”中 我如何使用 bash 脚本来做到这一点? 请注意,输入文件的内容可以是随机的,不必每次都相同。 但是要复制的单词的长度总是一样的




4

2 回答 2

2

你可以使用 SED

sed -i.old '20s/^.{58}/&0x0003FFB0/' file

它将生成一个带有原始内容的file.old,并且文件将使用该地址进行更新。快速解释

sed '20command'    file  # do command in line 20
sed '20s/RE/&xxx/' file  # search for regular expression, replace by the original text (&) + xxx

读取地址并放入这个 sed,尽可能减少

ADDRESS=$(head -1 address.txt | cut -f2)
sed -i.old "20s/^.{58}/&${ADDRESS}/" file 
于 2012-05-11T02:59:16.743 回答
0

您可以使用 head 和 tail 的组合来获取任何行号。要获取第 2 行,请获取前两行(使用 head)的最后一行(使用 tail):

ADDRESS=$(head -2 address.txt | tail -1 | cut -f2)

对于第三行:

ADDRESS=$(head -3 address.txt | tail -1 | cut -f2)

等等。

于 2012-05-11T04:01:26.070 回答