考虑我有一个文件abcde.txt,它可能包含一行或多行文本。我想要一个脚本,它将删除文件,如果它包含单行。Unix脚本删除文件,如果它包含单行
喜欢的东西,if 'wc -l abscde.txt' = 1 then rm abscde.txt
我的系统:的Solaris
考虑我有一个文件abcde.txt,它可能包含一行或多行文本。我想要一个脚本,它将删除文件,如果它包含单行。Unix脚本删除文件,如果它包含单行
喜欢的东西,if 'wc -l abscde.txt' = 1 then rm abscde.txt
我的系统:的Solaris
这里有一个简单的bash脚本:
#!/bin/bash
LINECOUNT=`wc -l abscde.txt | cut -f1 -d' '`
if [[ $LINECOUNT == 1 ]]; then
rm -f abscde.txt
fi
这个解决方案对我来说不适用于solaris。 cut命令不处理wc输出前面的多余空格。我用下面的代替'wc -l abscde.txt | awk'{print $ 1}'' – 2014-05-23 15:21:06
delifsingleline() {
if [ $(cat $1 | wc -l) = "1" ]
then
echo "Deleting $1"
echo "rm $1"
fi
}
上zsh
轻轻测试。还应该在bash
上工作。
这是(大部分)只是一个Ben的答案重新格式化:
wc -l $PATH | grep '^1 ' > /dev/null && rm -f $PATH
您运行的是什么壳呢? – heldt 2011-03-16 15:58:48
即使只有空行,您是否要删除该文件? – anubhava 2011-03-16 16:09:42
1.它是BASH shesll 2.是的,如果文件是空白的,那么也删除。但在我的情况下,它总是至少有一条线。 – 2011-03-24 17:44:32