質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

sed

sedとは、POSIX環境のために作られたコマンドラインエディタです。sedは編集スクリプトの指示のもとに複数のファイルを編集し、標準出力にその結果を出力します。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

Q&A

解決済

1回答

800閲覧

別ファイル間で文字列の抽出と挿入をしたい

Riyoch

総合スコア2

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

sed

sedとは、POSIX環境のために作られたコマンドラインエディタです。sedは編集スクリプトの指示のもとに複数のファイルを編集し、標準出力にその結果を出力します。

AWK

AWKは、UNIX 上で開発されたプログラミング言語で、CSVファイルなどのテキストファイルの処理を目的にデザインされています。

0グッド

0クリップ

投稿2021/05/17 14:05

前提・実現したいこと

既存のtxtファイル(1.txt)から(the Fermi energy is 11.5089 ev)の11.5089を抽出して別ファイル(2.txt)のef= の後に11.5089を追加したいです。
テキスト処理(sed,awk,grep)でどのように表現すれば可能なのでしょうか?
ご教示ください。

--以下対応ファイル--

1txt

1 2 Number of k-points >= 100: set verbosity='high' to print the bands. 3 4 the Fermi energy is 11.5089 ev 5 (compare with: 11.8588 eV, computed in scf) 6 7 Writing output data file out_qa/qa.save/ 8

2txt

1 2set yzeroaxis dt (30,10,5,10) lw 8 3ef= 4set key left top

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Linuxであれば、

Bash

1A=$(grep -Po 'the Fermi energy is\s+\K[0-9.]+' 1txt) 2 3sed "s/^ef=/&$A/" 2txt

投稿2021/05/17 14:15

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問