コマンド 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
これを整理するために、ここで欠けている重要なことを手伝ってください。前もって感謝します