我想在可编辑模式下删除文件名的"-"以下是文字
-
- rw-r--r--+ 1 dayua mkpasswd 663 11月14日 18:11 Add-Binary.py
-- rwxr-xr-x+ 1 dayua mkpasswd 799 11 月 14 日 18:11 add-two-link-list.py
-- rw-r--r--+ 1 Dayua mkpasswd 571 11月 14 18:11 Anagrams.py
-- rwxr-xr-x+ 1 dayua mkpasswd 1041 11月 14 18:11 Balanced-Binary-Tree.py
-- rwxr-xr-x+ 1 dayua mkpasswd 1241 11月 14 18:11 Best-profit-III.aux.py
-- rwxr-xr-x+ 1 dayua mkpasswd 830 11 月 14 日 18:11 Best-Time-to-Buy-and-Sell-Stock-II.py
-- rwxr-xr-x+ 1 dayua mkpasswd 1605 11月 14 18:11 Best-Time-to-Buy-and-Sell-Stock-III.py
-- rw-r--r--+ 1 dayua mkpasswd 5323 11 月 20 日 14:48 Binary-Search-Best-Practice.py
请给出一些建议。
简短回答:进入可编辑模式(又名wdired
)后,转到缓冲区的开头并执行 M-% - RET RET !
M-%是query-replace
的快捷方式;它会提示你想要替换什么(-
)和什么(空字符串),然后它会把你置于交互模式,键!
告诉它替换所有出现的情况。
wdired 将正确处理(替换时不包含)DIRED 列表权限部分的"-"字符。
我的第一直觉,特别是如果这只是一次性更新,是录制键盘宏。
C-x ( ; to begin macro
C-e ; to end of line
M-<space> ; mark beginning of region
C-r : ; search backward to time delimiter (:)
M-x replace-string - <blank> ; replace - with nothing
C-a ; beginning of line
C-n ; next line
C-x ) ; end macro
然后只需重复宏直到完成
C-x e
如果有很多行,可以在宏调用前面加上要重复的次数(在本例中为 50
)<ESC> 50 C-x e
我很有兴趣了解这个问题的任何正则表达式解决方案!