sed
朝はインターネット検索をしてみましたが、うまく動作しないようです。
sed
で可能ですか?小文字2つの特定の文字間のテキスト:
つまり
SOMENAME=WOODSTOCK,
SOMEOTHERNAME=JIMMY,
できますか?小文字 WOODSTOCK
そしてJIMMY
=
(ウッドストックとジミに)彼らはと,
?
ベストアンサー1
GNU sedはこれを達成できます。交換がどれほど欲しいかに応じて、これら2つの形式のいずれかを選択してください。
sed 's|=.*,|\L&|' file
sed 's|=[^,]*,|\L&|' file
マニュアルに記載されているように, " or が見つかる\L
まで置換内容を小文字に変換します。"\U
正規表現に一致するテキストです。\E
&
=.*,
貪欲な正規表現と貪欲な正規表現の間で賢明に=[^,]*,
選択する必要があることを示すために、サンプルファイルを修正しました。
$ cat file
SOMENAME=WOODSTOCK,
SOMEOTHERNAME2=JIMMY,WOODSTOCK,FINISH
$ sed 's|=.*,|\L&|' file
SOMENAME=woodstock,
SOMEOTHERNAME2=jimmy,woodstock,FINISH
$ sed 's|=[^,]*,|\L&|' file
SOMENAME=woodstock,
SOMEOTHERNAME2=jimmy,WOODSTOCK,FINISH