我有一个很长的文本文件,在文件中列出的每个路径前都有数字,如下例所示:
1) /some/path/here/file.txt
1) /some/path/here/1file.edf
2) /some/another_path/here/2file.txt
3) /some/other_path/here/3file.txt
3) /some/other_path/here/4file.edf
3) /some/other_path/here/5file.edf
...
此文件持续数千行。我要做的是从这些行的第一部分中删除数字,以便我可以在没有数字干扰的情况下对文件列表进行tar。有没有办法可以使用Emacs的Shell命令来做到这一点?
答案 0 :(得分:2)
正则表达式是你的朋友。您可以在emacs或命令行中执行此操作。在emacs中,如果按C-M-%
(控制+ alt + shift + 5)或运行query-replace-regexp
,它将提示您找到正则表达式,另一个要替换。如果您使用^[0-9]*)
(请注意,此末尾有空格),然后将“repalce”留空,您将无需替换数字,paren和空格。如果从文件的顶部开始,您可以键入!
来替换所有文件,或者逐个检查它是否有效。
在正则表达式中,^
匹配行的开头[0-9]
表示匹配0到9范围内的单个字符,*
表示“匹配以前任意数量的字符” “,然后)
匹配文字填充(在emacs中这是默认值,在shell中你可能需要使用\)
来逃避它。
答案 1 :(得分:0)
类似的东西:
cat list.txt | cut -f 2 -d' ' | xargs tar czf archive.tar.gz