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
ヘッドとテールの組み合わせを使用して、任意の行番号を取得できます。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 に答える