Ubuntu 12.04 と vim 2.22.0 を使用して、vim エディター内で次を使用します。
:9;13;17;21s/\d\+/1/
^M の前の数字 (場合によっては末尾のない数字のみ) に一致し、それらを 1 に変更します。このパターンは、行 #9、13、17、および 21 の先頭でのみ発生します。つまり:
vi _ccc_info_datasets:
...
=====
2
../../automotive_susan_data/2.pgm output_large.corners.pgm -c > ftmp_out
691^M // ---------> change to 1^M
=====
...
私が理解しているように、同じことは sed のようにはできません:
find . type f -name "_ccc_info_datasets" -exec sed -i '9;13;17;21s/\d\+/1/' {} \;
bash で複数のファイルを変更する場合。私が試してみました :
find . type f -name "_ccc_info_datasets" -exec sed -i '9;13;17;21s/[0-9]{1;\}/1/' {} \;
エラーなしで実行されますが、結果はありません。どんな助けでも大歓迎です;)