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

ヘッドとテールの組み合わせを使用して、任意の行番号を取得できます。2行目を取得するには、最初の2行(ヘッドを使用)の最後の行(テールを使用)を取得します。

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

3行目:

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

等々。

于 2012-05-11T04:01:26.070 に答える