Unix脚本如果包含单行则删除文件

时间:2011-03-16 15:56:09

标签: unix

考虑我有一个文件abcde.txt,它可能包含一行或多行文本。我想要一个脚本,如果它包含单行,将删除该文件。

类似于if 'wc -l abscde.txt' = 1 then rm abscde.txt

我的系统:Solaris

3 个答案:

答案 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