![無効な文字をテキストファイルの文字列に置き換える[閉じる]](https://linux33.com/image/173245/%E7%84%A1%E5%8A%B9%E3%81%AA%E6%96%87%E5%AD%97%E3%82%92%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E6%96%87%E5%AD%97%E5%88%97%E3%81%AB%E7%BD%AE%E3%81%8D%E6%8F%9B%E3%81%88%E3%82%8B%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
ファイルがありますが、画像名のすべての無効な文字を_
。
無効な文字は次のとおりです~?,[]/\=<>:;'\&$#*()|~`!{}%+
。
画像の種類はjpg、png、またはgifです。
イメージ名に無効な文字が含まれるテキストの例は次のとおりです。
INSERT INTO wp_2_cptch_images VALUES (1,'hs$x#f.png',2,0),(2,'t_ixy.png',2,1),(3,'#.png',2,2),(4,'!sample.png',2,3)
上記の例で私が見たいのは
INSERT INTO wp_2_cptch_images VALUES (1,'hs_x_f.png',2,0),(2,'t_ixy.png',2,1),(3,'_.png',2,2),(4,'_sample.png',2,3)
画像名に含まれていない間違った文字は大丈夫です。
この問題を解決する方法がわかりません。助けてくれてありがとう。
答え1
SQLクエリを手動でフィルタリングしたいようです。これは一般的に悪い考え™、この場合は準備されたステートメントを使用する必要があります。
整理したいSQLコマンドを複数受け取った可能性があります。これをしないでください。これは、この問題を解決するように求められたものと似ています。
フォールトトレラント電源を設計する代わりに。これは技術的に可能ですが、おそらくどこから始めるべきかではありません。 bashパイプラインの結果ではなく、人工知能の結果になるコマンドの意図を決定するために自動化されたシステムを設計しようとしています。
すべてのファイル名のリストがあり、bashツールを使用してクリーンアップするには、次のものを使用できますtr
。
cat original.txt | tr '~?,[]/\=<>:;'"'"'\&$#*()|~`!{}%+' - > modified.txt
jiggery '"'"'
-pokery は一重引用符を終了し、"'"
リテラル一重引用符を提供してから一重引用符を再起動するために使用されます。