考虑我有一个文件abcde.txt,它可能包含一行或多行文本。我想要一个脚本,如果它包含单行,将删除该文件。
类似于if 'wc -l abscde.txt' = 1 then rm abscde.txt
我的系统:Solaris
答案 0 :(得分:3)
这是一个简单的bash脚本:
#!/bin/bash
LINECOUNT=`wc -l abscde.txt | cut -f1 -d' '`
if [[ $LINECOUNT == 1 ]]; then
rm -f abscde.txt
fi
答案 1 :(得分:0)
delifsingleline () {
if [ $(cat $1 | wc -l) = "1" ]
then
echo "Deleting $1"
echo "rm $1"
fi
}
在zsh
上进行了轻微测试。也应该在bash
上工作。
答案 2 :(得分:0)
这(大部分)只是Ben的回答的重新格式:
wc -l $PATH | grep '^1 ' > /dev/null && rm -f $PATH