使用 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/' {} \;
但它执行没有错误但没有结果。任何帮助表示赞赏;)