вы можете использовать ls и grep вместе, это очень просто, а с помощью -v в опции grep вы можете искать слова или фразы, которых нет, поэтому он выведет все, что не связано с вашим поиском.
Находясь в каталоге, который вы хотите сделать, попробуйте:ls -l | grep -v корень || июль
Первая часть ls -l перечисляет все файлы в длинном порядке
| Символ называется каналом, и он принимает ввод предыдущей команды и использует его в качестве ввода в следующей команде, в этом случае ls -l будет использоваться в качестве ввода в 'grep'.
Во второй части grep -v root используется grep с параметром-v , который с поисковым термином root, параметр-v используется для ищите все содержимое, в котором нет того, что вы искали, поэтому он будет искать все, что не имеет «рута».
Наконец последняя часть || Июль , || в основном означает «и» в grep, поэтому при указании двух или более поисковых терминов «июль» является вторым поисковым термином.***
PS :Я НЕ ДУМАЮ, ЧТО ВОПРОС ПРОСИТ ВАС СОЗДАТЬ ФАЙЛ С НАЗВАНИЕМ 'NOTOWNEDBYROOT', А ВМЕСТО ПРОСИТ ВАС ПОИСК В КАТАЛОГЕ ДЛЯ ВСЕХ ФАЙЛОВ/ПОДКАТАЛОГОВ, КОТОРЫЕ НЕ ПРИНАДЛЕЖАТ ROOT ИЛИ СДЕЛАНЫ В ИЮЛЕ
Вы можете использовать awk
, чтобы соединить вывод grep
с одной строкой в файле, затем транспонировать с помощью csvtool
и опционально column -nt
, чтобы сделать вывод хорошим (обратите внимание, что -n
является Debian и может быть недоступно для вашей платформы ).
grep -o "201[1-4].[0-9][ -9]" file1.txt file2.txt file3.txt \
| awk -F: '
{
if (!s[$1]){ s[$1]=$2 }
else { s[$1]=s[$1]","$2 }
}
END {
for (f in s){ print f","s[f] }
}' \
| csvtool transpose -u " " - \
| column -nt
Выход:
file1.txt file3.txt file2.txt
2012.69 2013.54 2013.17
2013.44 2013.9 2012.6
2013.75
2013.08
Возможно, вам потребуется установить csvtool
.