【发布时间】:2023-03-24 13:27:02
【问题描述】:
我想删除给定文本文件中的所有空格(大约 200,000 个)。
我知道如何删除其中一个空格:
cat file.txt | tr -d " \t\n\r"
如何对所有文件夹执行此操作?
【问题讨论】:
我想删除给定文本文件中的所有空格(大约 200,000 个)。
我知道如何删除其中一个空格:
cat file.txt | tr -d " \t\n\r"
如何对所有文件夹执行此操作?
【问题讨论】:
一种方法是迭代当前目录中的文件:
for file in *; do
cat $file | tr -d " \t\n\r"
done
或者,也许更好:
for file in *; do
sed -i 's/ //g' $file
done
【讨论】:
tr/sed 命令之后重定向输出或为sed 添加-i.bak
*) 在处理数千个文件时会出现问题。
getconf ARG_MAX显示的值(以字节为单位)。
sed 创建一个备份文件有什么意义?另外请修复shellcheck.net报告的错误
我会为此使用find:
find . -type f -exec sed -i ':a;N;s/[[:space:]]*//g;ba' {} \;
这假设文件大小合理:-/
【讨论】:
只需使用for 循环
即
for i in *
do
cat $i | tr -d " \t\n\r" > $i.tmp
rm -f $i
mv $i.tmp $i
done;
【讨论】:
cat。见here。