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