Предположим, у меня есть файл abcde.txt, который может содержать одну или несколько строк текста. Я хочу скрипт, который удалит файл, если он содержит одну строку.
Что-то вроде, if 'wc -l abscde.txt' = 1 then rm abscde.txt
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
Это (в основном) просто переформатирование ответа Бена:
wc -l $PATH | grep '^1 ' > /dev/null && rm -f $PATH
delifsingleline () { if [ $(cat $1 | wc -l) = "1" ] then echo "Deleting $1" echo "rm $1" fi }
Слегка испытан на zsh.Должно работать и на bash.
zsh
bash