1

次の構造を持ついくつかのnastran入力ファイルを使用しています。

GRID,1,,0.000,0.000,0.000,0
GRID,2,,0,000,1.653,0.000,0

私がやりたいのは、特定の値を1つの列に追加することです。たとえば、4番目の列に1.653を追加して、次のようにします。

GRID,1,,0.000,1.653,0.000,0
GRID,2,,0,000,3.306,0.000,0

整数に対してこれを行う方法を示すいくつかの例を見つけましたが、上記で概説した例ではこれを機能させることができないようです。

助けてくれてありがとう!

4

2 に答える 2

2

リンクされた質問の回答を使用すると、次のように置換で実行できます。例:

C-M-%

^\([^,]*,[^,]*,[^,]*,[^,]*,\)\([^,]*\)\(.*\)

return

\,(concat \1 (number-to-string (+ 1.653 (string-to-number \2))) \3)

この例では、2番目の行に最初の行よりも多くの列(コンマ)があることに注意してください。おそらくタイプミスです。

于 2012-08-14T18:16:14.593 に答える
0

コマンドとしてそれぞれ

(defun raise-column ()
  (interactive "*")
  (save-excursion
    (save-restriction
      (widen)
      (goto-char (point-min))
      (while (re-search-forward "^\\([^,]*,[^,]*,[^,]*,[^,]*,\\)\\([^,]*\\)\\(.*\\)" nil t 1)
        (replace-match (concat (match-string-no-properties 1) (number-to-string (+ 1.653 (string-to-number (match-string-no-properties 2)))) (match-string-no-properties 3)))))))
于 2012-08-16T09:50:36.557 に答える