如何从给定的行和列号复制文本,并将其粘贴到给定行和列号的另一个文件中

时间:2012-05-11 02:52:19

标签: bash

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

2 个答案:

答案 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)

等等。