1

コマンド cat filename | があります。awk 'match($0,/regext_patt/,a) {print a[1] ;exit;}' scala sys.process を使用してこのコマンドを実行したい。ここで、「filename」と「regex_patt」は、scala で定義された変数から取得されます。これまでのところ、これを管理できます。

val extract = (s"cat $file" #| Process(Seq("awk", "match($0,/.+Country=([^;]*);.+/,a) {print a[1] ;exit(0);}"))).!!

ここでの問題は、ハードコーディングされた正規表現 pattern にあり、Seq プロセス ビルダー内で scala 変数を使用する方法を回避できません。

私はこれを試しましたが、エラーが発生しました:

val reg:String = ".+Country=([^;]*);.+"
val extract= (s"cat $file" #| Process(Seq("awk", "match($0,/",reg,"/,a) {print a[1] ;exit(0);}"))).!

ここでのエラーは次のとおりです。

awk: match($0,/
awk:           ^ unexpected newline or end of string
awk: cmd. line:1: match($0,/
awk: cmd. line:1:           ^ unexpected newline or end of string

これを整理するために、ここで欠けている重要なことを手伝ってください。前もって感謝します

4

1 に答える 1