从一组文档linux中删除空格

时间:2018-01-21 08:15:00

标签: linux bash

我想删除给定文本文件中的所有空格(大约200,000个)。

我知道如何删除其中一个空格:

cat file.txt | tr -d " \t\n\r" 

我如何为所有文件夹执行此操作?

3 个答案:

答案 0 :(得分:3)

一种方法是迭代当前目录中的文件:

for i in *
do
   cat $i | tr -d " \t\n\r" > $i.tmp
   rm -f $i
   mv $i.tmp $i
done;

或者,或许更好:

for file in *; do
   cat $file | tr -d " \t\n\r" 
done

答案 1 :(得分:2)

我会使用find

find . -type f -exec sed -i ':a;N;s/[[:space:]]*//g;ba' {}  \;

这假定文件的大小合理:-/

答案 2 :(得分:1)

只需使用[1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 循环

for