если ваши имена файлов достаточно вменяемы, и вы можете разделять их как :
, так и новой строкой, то:
grep -m3 '' ./* ./*/* |
cut -d: -f1 | uniq -c |
grep -v '^ *[13] '
^эта команда выведет список всех файлов без точек в текущем каталоге и во всех ближайших дочерних каталогах, которые содержат только две строки.
Вам не нужно беспокоиться о сортировке для uniq
, потому что глобы сортируются. Я использую опцию GNU -m
ax match, потому что гораздо быстрее, если grep
завершает работу на третьей строке ввода, чем если он продолжает работу до конца, но он будет работать и без нее. Идея заключается в том, чтобы заставить grep
печатать имена файлов для каждой строки, которую они содержат, затем подсчитывать количество повторений каждого имени файла в выводе, а затем отфильтровывать все, что больше или меньше 2.
Я прогнал его по некоторым случайным каталогам исходного кода, и из всех них у меня было два файла, которые содержали только две строки:
2 ./dex/coll.sh
2 ./jimtcl/jim-config.h.in
было бы аккуратнее заменить последнюю строку на:
... |
sed -ne's/^ *2 *//p'
... хотя...
Вы можете написать файл.desktopдля своего приложения. С опцией terminal
приложение должно запускаться в терминале:
[Desktop Entry]
Type=Application
Name=Application Name
Exec=/path/to/nameofapp
Terminal=true
В качестве альтернативы вы можете написать скрипт-оболочку, который запускает терминал и запускает ваше приложение. Например (гном -терминал):
#!/bin/sh
exec gnome-terminal --./nameofapp