sed で動作する単純な正規表現の置換を取得できません。これが私が直面している例です。
これから、ファイル内の行を置き換えようとしています:
select * from mytable where mytable.s_id=274
select * from mytable where mytable.s_id=275
select * from mytable where mytable.s_id=276
select * from othertable where othertable.id=?
select * from table3 where table3.name=?
これに:
select * from mytable where mytable.s_id=?
select * from mytable where mytable.s_id=?
select * from mytable where mytable.s_id=?
select * from othertable where othertable.id=?
select * from table3 where table3.name=?
私は今のところsedを使用しています:
cat log | sed 's/where mytable\.s_id=[0-9]+/where mytable.s_id=/g' | sort
しかし、sed( 's/where mytable\.s_id=[0-9]+/where mytable.s_id=/g'
) で使用している正規表現は何も置き換えません。
私はできる限り多くのドキュメントを読んでいますが、私が読んだものはすべて異なっており、物事のやり方も異なっているので、少し迷っています. sed を使用した正規表現置換の標準的な方法は何ですか?また、私の特定のケースではどのように見えるでしょうか?
注:直面している問題を単純化しました。私が使用するコマンドラインは実際にはそれよりも複雑であるため、 sedを使用したい(最終的に使用することを学ぶため) 、入力と出力をパイプしたい(ファイルを編集するのではなく)。