bash – 替换所有文件中的字符串 – Unix
发布时间:2020-12-16 01:14:03 所属栏目:安全 来源:网络整理
导读:我试图在一批txtfiles中为所有行替换一个字符串::: with ::(它可以被视为一个单词,因为它前面和后面总是有一个空格. 我可以像下面这样使用python来实现它,但是通过unix终端这样做是否有“过度杀戮”/错综复杂的方式? (许多管道允许) indir = "./td/"outdir
我试图在一批txtfiles中为所有行替换一个字符串::: with ::(它可以被视为一个单词,因为它前面和后面总是有一个空格.
我可以像下面这样使用python来实现它,但是通过unix终端这样做是否有“过度杀戮”/错综复杂的方式? (许多管道允许) indir = "./td/" outdir = './od/' for infile in glob.glob(os.path.join(indir,"*")): _,FILENAME = os.path.split() for l in codecs.open(infile,'r','utf8').readlines(): l = l.replace(":::","::").strip() outfile = codecs.open(os.path.join(outdir,FILENAME),'a+','utf8') print>>outfile,l 然后我将所有文件从od移动到td mv ./od/* ./td/* find . -name "./td/*.c" -exec sed -i "s/:::/::/g" '{}' ; 根本不需要od. 编辑: 一个稍微简单的变化: ls td/*.c | xargs sed -i '' "s/:::/::/g" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |