从这么多文件的开头删除数字的最快方法是什么?

yuk*_*say 2 regex bash shell performance text-processing

我有1000个文件,每个文件有一百万行.每一行都有以下形式:

a number,a text
Run Code Online (Sandbox Code Playgroud)

我想从每个文件的每一行的开头删除所有数字.包括 ,

例:

14671823,aboasdyflj -> aboasdyflj
Run Code Online (Sandbox Code Playgroud)

我在做的是:

os.system("sed -i -- 's/^.*,//g' data/*")
Run Code Online (Sandbox Code Playgroud)

它工作正常,但需要花费大量的时间.

最快的方法是什么?

我在python中编码.

klu*_*utt 5

这要快得多:

cut -f2 -d ',' data.txt > tmp.txt && mv tmp.txt data.txt
Run Code Online (Sandbox Code Playgroud)

在一个有1100万行的文件上花了不到一秒钟.

要在目录中的多个文件上使用它,请使用:

TMP=/pathto/tmpfile
for file in dir/*; do
    cut -f2 -d ',' "$file" > $TMP && mv $TMP "$file"
done
Run Code Online (Sandbox Code Playgroud)

值得一提的是,通常需要花费更长的时间才能使用单独的文件.我尝试了你的sed命令,但从原地切换到临时文件.总时间从26秒下降到9秒.