![删除仅包含一行的文件?](https://linux22.com/image/11121/%E5%88%A0%E9%99%A4%E4%BB%85%E5%8C%85%E5%90%AB%E4%B8%80%E8%A1%8C%E7%9A%84%E6%96%87%E4%BB%B6%EF%BC%9F%20.png)
csv
我在一个文件夹中保存了大量文件。我只想删除csv
包含一行的文件,我该怎么做?
答案1
名为 的文件中的行数MyFile.csv
可以通过wc -l <MyFile.csv
.可以将此数字与文件进行比较1
并使用以下命令删除文件
if [ "$( wc -l <MyFile.csv )" -eq 1 ]; then
rm -i MyFile.csv
fi
这$(...)
是一个命令替换,将被其中命令的输出替换。该-i
选项rm
使实用程序在删除任何内容之前要求确认。
要将其推广到当前目录中的所有 CSV 文件:
for filename in ./*.csv; do
if [ "$( wc -l <"$filename" )" -eq 1 ]; then
rm -i "$filename"
fi
done
要进一步推广到当前目录或任何子目录中任何位置的所有 CSV 文件:
find . -type f -name '*.csv' -exec sh -c '
for pathname do
if [ "$( wc -l <"$pathname" )" -eq 1 ]; then
rm -i "$pathname"
fi
done' {} +
请务必备份数据,尤其是当您打算测试运行脚本化文件删除时。