Я бы добавил в ваш сценарий изменение -
for file in *.csv; do
head -1 "$file" | grep -l -Z -E '.*?FindMyRegex' | xargs -0 -I{} mv {} /home/destination/folder;
done
Вы также можете попробовать (работает только в том случае, если им не манипулируют):
System.Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE")
Вы могли бы спросить пользователя?
Шучу, конечно ... Я думаю, что WMI - это то, что вы хотели бы использовать для этого. Но, может быть, есть и другой путь?
Если вы выберете WMI, то LinqToWmi может пригодиться. Я попробовал один раз, и это выглядело довольно просто =) -> http://www.codeplex.com/linq2wmi
Я считаю, что вам следует избегать таких явных проблем, как WMI и LINQ .. и вам придется в конечном итоге получить больше Информация, как вы идете вместе, ни одна из которых не удовлетворяет раздутый API и каркасы.
Просто вызовите dll, которая вызывает и извлекает информацию о CPUID. C ++ / CLI или pinvoke подойдут и получат всю необходимую информацию о поставщике. Сначала нужно посмотреть, поддерживается ли инструкция (99% времени).
Чтобы быстро приступить к работе, нужно проверить на сайте intel образец wincpuid и извлечь его из cpuid.h. Есть только 2 поставщика, и один хорош с задержкой памяти, а другой нет (как нативный или управляемый код). Так что у вас будут проблемы с Mono на других архитектурах и т. Д. (Кто, кстати, этого не делает).
Win32_Processor Класс WMI выполнит эту работу. Используйте MgmtClassGen.exe для создания строго типизированных оболочек.
Может быть, эта статья CodeProject может помочь? Он использует ManagementObjectSearcher в пространстве имен System.Management для поиска информации об оборудовании.