我有一个包含
的文件address.txt
`0x0003FFB0'
在第1行和第2列
我想将它粘贴在第20行和第58列的另一个文件'linker.txt'中
我怎么能用bash脚本来做呢?
请注意,输入文件的内容可以是随机的,每次都不必相同
但是要复制的单词的长度总是相同的
答案 0 :(得分: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
答案 1 :(得分:0)
您可以使用head和tail的组合来获取任何行号。要获得第2行,请获取前两行的最后一行(使用尾部)(使用head):
ADDRESS=$(head -2 address.txt | tail -1 | cut -f2)
第三行:
ADDRESS=$(head -3 address.txt | tail -1 | cut -f2)
等等。