質問: 後方参照の練習をしようとしています。 1111:2222:3333:4444 5555:6666:7777:8888 というファイルを:でフィールドを区切って1列目と2列目を sedをつかってひっくり返そうとしました。 sed 's/^(\d{4}):(\d{4})/^$2:$1/' test.file などいろいろやってみたのですがうまくいきません。 良ければ教えてください。
回答: > bash-3.2$ sed 's/^\([0-9]+\):\([0-9]+\)/^\2:\1/g' test > 1111:2222:3333:4444 > 5555:6666:7777:8888 > > とやってみたのですが、まだうまくいきません。 あー(笑) sed は + も使えません。 ただし、GNU sed だったら \+ と書くことでPerlの+と 同じ意味にすることができます。 あと、置換パターンの先頭にある ^ は何のために? もうひとつgフラグもいらないんじゃ?