[英]How to delete files with different extensions according to a specific condition?
[英]how to delete multiple files according to the content in ubuntu
我想刪除所有只包含一行的文件。 列出每個文件中的行數是wc -l *txt
。 我只知道如何使用rm
刪除具有特定名稱但不包含內容行的文件。
有人可以幫忙嗎? 非常感謝!
你可以將wc
和awk
組合成一個oneliner
wc -l *.txt|awk '$1==1{print "rm "$2}'
這將為您打印rm xxx.txt
。 如果你想執行它,只需將輸出傳遞給sh
例:
kent$ wc -l *.txt
1 a.txt
1 b.txt
2 c.txt
2 d.txt
1 e.txt
7 total
kent$ wc -l *.txt|awk '$1==1{print "rm "$2}'
rm a.txt
rm b.txt
rm e.txt
kent$ wc -l *.txt|awk '$1==1{print "rm "$2}'|sh
kent$ l
total 8.0K
-rw-r--r-- 1 kent kent 4 Mar 4 16:41 c.txt
-rw-r--r-- 1 kent kent 4 Mar 4 16:41 d.txt
那這個呢?
for i in `ls -1 $dir`
do
if [ `wc -l $i` -eq 1 ]; then
rm $i
fi
done
對這個問題的任何回答都不會與ubuntu上的這個問題有任何關系。 您可以在Linux / * nix / bsd上使用bash執行此操作,包括cygwin(在Windows上)或Mac終端上。
for i in `ls`; do n1=$(wc $i | awk '{print $1}'); if [ $n1 -eq 1 ]; then rm $i; fi; done
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.