sedを使用して文字位置を変更する

sedを使用して文字位置を変更する

このファイルには以下が含まれます。

dateutkfilename25012009

16~17文字の位置を18~19文字に変更したいと思います。次に、16番目の文字の位置を19番目の文字に変更し、20番目の文字の位置を23番目の文字に変更します。それでは、次のようになります。

dateutkfilename20090125

以下のコードを使用して、16番目の文字を17番目の文字に変更し、18番目の文字を19番目の文字に変更しようとしましたが、なぜ機能しないのかわかりません。

'/dateutkfilename/s/\(.\{16\}\)\([0-9]\{2\}\)\(.*\)/\(.\{18\}\)\([0-9]\{2\}\)\(.*\)/g'

ベストアンサー1

あなたの質問に対する答えは次のとおりです。

s/^\(.\{15\}\)\(.\{2\}\)\(.\{2\}\)\(.\{4}\)/\1\4\3\2/

ただし、最後まで固定できれば、状況が簡単になります。

s/\(.\{2\}\)\(.\{2\}\)\(.\{4\}\)$/\3\2\1/

個人的に私も[0-9]同じことをします.

s/\([0-9]\{2\}\)\([0-9]\{2\}\)\([0-9]\{4\}\)$/\3\2\1/

いつものようにこれを行う方法はいくつかあります。

おすすめ記事