用于删除包含单行的文件的Unix脚本
假设我有一个文件abcde.txt,它可能包含一行或多行文本。我想要一个脚本,将删除文件,如果它包含一行 类似于,用于删除包含单行的文件的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上进行轻微测试。也应
如果'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