私はUNIXに初めてアクセスし、grepコマンドの助けが必要です。
7つのパラメータ値S1、S2 ...、S7を含む出力ファイルがあります。 grepコマンドを使用して値のみを抽出し、後でプロットする新しいファイルに配列として書き込むにはどうすればよいですか?
<<<<< Function evaluation summary (APPROX_INTERFACE_1): 1808 total (1808 new, 0 duplicate)
<<<<< Best parameters =
3.3500000000e+02 S1
1.0357218750e+00 S2
7.2046250000e+01 S3
7.2872921875e+01 S4
5.7405507812e+01 S5
5.0000054687e+01 S6
2.3999984375e+02 S7
<<<<< Best objective function =
8.0674284316e-01
答え1
Grepは行選択ツールです。
grep ' S.$' your.txt
7つの値を含む行が提供されます。
各行の値を切り捨てる必要がある場合は、cutを使用できます。
grep ' S.$' yout.txt |cut -d ' ' -f23
各行の先頭にスペースが22個ある場合は、23を使用します。
AWKはgrepとcutを置き換えるのに最適な方法です。
答え2
2つ目のフィールドがS
各行の最初のフィールドであり、後に数字が続くものであると確信できる場合は、次のようにします。
$ awk '$2~/^S[0-9]$/{print $1}' data
3.3500000000e+02
1.0357218750e+00
7.2046250000e+01
7.2872921875e+01
5.7405507812e+01
5.0000054687e+01
2.3999984375e+02
配列の値として使用するには、次のようにします。
array=( $(awk '$2~/^S[0-9]$/{print $1}' data) )
新しいファイルに入れるには:
awk '$2~/^S[0-9]$/{print $1}' data > new.data