С помощью GNU awk
и mv
вы можете сделать:
gawk -F'\t' -v ORS='\0' '
NF < 5 && $1 ~ /[[:alpha:]]/ && $2 ~ /[[:alpha:]]/ && $3 ~ /[[:alpha:]]/ {
print FILENAME; nextfile
}'./*.txt | xargs -r0 mv -t destination-directory
Это приведет к перемещению в destination-directory
не (не -скрытых )файлов, имя которых заканчивается на .txt
и содержит по крайней мере одну строку с менее чем 5 полями (менее чем с 4 разделителями )и чьи первые 3 поля содержат хотя бы один буквенный символ.
Это также можно сделать с помощью GNU grep
и mv
с помощью :
grep -lZxP '([^\t]*[[:alpha:]][^\t]*)\t(?1)\t(?1)(\t[^\t]*)?'./*.txt |
xargs -r0 mv -t destination-directory