Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于删除包含单行的文件的Unix脚本_Unix - Fatal编程技术网

用于删除包含单行的文件的Unix脚本

用于删除包含单行的文件的Unix脚本,unix,Unix,假设我有一个文件abcde.txt,它可能包含一行或多行文本。我想要一个脚本,将删除文件,如果它包含一行 类似于,如果'wc-l abscde.txt'=1,则rm abscde.txt 我的系统:Solaris这里有一个简单的bash脚本: #!/bin/bash LINECOUNT=`wc -l abscde.txt | cut -f1 -d' '` if [[ $LINECOUNT == 1 ]]; then rm -f abscde.txt fi 在zsh上进行轻微测试。也应

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

类似于,
如果'wc-l abscde.txt'=1,则rm abscde.txt


我的系统:Solaris这里有一个简单的bash脚本:

#!/bin/bash

LINECOUNT=`wc -l abscde.txt | cut -f1 -d' '`

if [[ $LINECOUNT == 1 ]]; then
   rm -f abscde.txt
fi
zsh
上进行轻微测试。也应该在bash上工作

这(大部分)只是本答案的一种改型:

wc -l $PATH | grep '^1 ' > /dev/null && rm -f $PATH wc-l$PATH | grep'^1'>/dev/null&&rm-f$PATH
即使只有一个空行也要删除该文件吗?1。是BASH shesll 2。是,如果文件为空,则也删除。但在我的情况下,它将始终至少有一行。这个解决方案对我来说在solaris上不起作用。cut命令不处理wc输出前面的额外空格。我使用了下面的
wc-l abscde.txt | awk'{print$1}'
wc -l $PATH | grep '^1 ' > /dev/null && rm -f $PATH