直接文字の検索と抽出

直接文字の検索と抽出

いくつかのSQLを含むファイルがあり、シェルスクリプトを使用して変換するフィールドを見つけたいと思います。

たとえば、次のSQLを含むabc.txtファイルがあります。

SELECT field1,field2,field3,field4,cast(field5 を整数に),cast(substr(field6,5,10) を整数に),(field7 = '0000/00/00' の場合 Cast(field7 を日付に) )else(field8は日付)end)はfield7、substr(field9、5、10)FROM TEMPです。

希望の出力:

フィールド5

フィールド6

フィールド7

ベストアンサー1

どうですか?

awk 'BEGIN{FS="cast\\(";OFS="\n\n"}{ for(i = 1; i <= NF; i++) { sub("[ ),].*","",$i);gsub("^.*\\(","",$i) } {$1=""; print}}'

ソリューションは、すべての行の "cast(") インスタンスを繰り返し、プレフィックスとサフィックスを削除します。

おすすめ記事