• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:数字の置換(引き算)sedコマンド?)

数字の置換(引き算)sedコマンド

このQ&Aのポイント
  • 数字の置換(引き算)sedコマンド
  • 質問文章中の数字の置換(引き算)について、sedコマンドを使用する方法を教えてください。
  • 質問文章で紹介されているファイルの特定の列にある数字を置換(引き算)したい場合、sedコマンドを使用すると便利です。具体的な置換の方法と合わせて説明します。

質問者が選んだベストアンサー

  • ベストアンサー
  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

>置換後の数字(1~95)の右端の数字は21列目になる必要があります。 この 21 というはこの説明だと 36 の間違いでは? そうだとしたら awk でこんな感じでどうでしょう。 awk 'ter==1 && /^ATOM/ {printf "%s%3d%s\n", substr($0,1,23), $5-95, substr($0,27,40); next} /^TER/{ter=1} {print $0}' protein.pdb

mdsba
質問者

お礼

おっしゃる通り、36でした。 上記のawkファイルでうまく置換することができ、また、本来の目的である、プログラムによる解析も行うことができました。感謝します。 awkの基本すらまだ理解しておりませんが、いまからそれぞれどういう意味をもつか勉強したいと思います。 ありがとうございました。 この質問と回答をご覧になったかたへ。 私も調べるまで知りませんでしたが、ファイルに出力する場合、 awk 'ter==1 && /^ATOM/ {printf "%s%3d%s\n", substr($0,1,23), $5-95, substr($0,27,40); next} /^TER/{ter=1} {print $0}' protein.pdb > new.pdb とするようです。