Как найти в разных файлах

Введите это в терминале sudo dmidecode | grep PCI, он скажет вам, какие у вас слоты Pci-e.

Изменить: это должно работать косвенным образом. Введите sudo lspci -vv | grep -E 'PCI bridge|LnkCap' в терминале, он должен показать вам что-то вроде этого:

00:14.4 PCI bridge: Advanced Micro Devices, Inc. [AMD] FCH PCI Bridge (rev 40) (prog-if 01 [Subtractive decode])
00:15.0 PCI bridge: Advanced Micro Devices, Inc. [AMD] Hudson PCI to PCI bridge (PCIE port 0) (prog-if 00 [Normal decode])
        LnkCap: Port #247, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
    Capabilities: [b0] Subsystem: Advanced Micro Devices, Inc. [AMD] Hudson PCI to PCI bridge (PCIE port 0)
00:15.1 PCI bridge: Advanced Micro Devices, Inc. [AMD] Hudson PCI to PCI bridge (PCIE port 1) (prog-if 00 [Normal decode])
        LnkCap: Port #1, Speed 5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
    Capabilities: [b0] Subsystem: Advanced Micro Devices, Inc. [AMD] Hudson PCI to PCI bridge (PCIE port 1)
        LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s unlimited, L1 unlimited

Теперь просто проверьте, какая версия соответствует спецификациям, которые у вас здесь, и вам должно быть хорошо идти.

0
задан 15 May 2018 в 12:12

6 ответов

Однако я точно знаю, что конструкция -o для поиска файлов разных типов верна:
find ./ -name "*.cpp" -or -name "*.h"

Правда, но приоритет -or не так высок. Из man find:

   Please note that -a when specified implicitly (for example by two tests
   appearing  without an explicit operator between them) or explicitly has
   higher precedence than -o.  This means that find . -name afile -o -name
   bfile -print will never print afile.

Итак:

-name "*.cpp" -or -name "*.h" -exec grep ...

Как:

-name "*.cpp" -or ( -name "*.h" -exec grep ... )

И не нравится:

Вам нужно:

find . \( -name '*.cpp' -o -name '*.h' \) -exec grep -H '#include.*Sample\.h' {} +

(предположим, вы использовали /dev/null, чтобы grep распечатать имя файла? Опция -H делает это.)

2
ответ дан 22 May 2018 в 10:42
  • 1
    действительно, /dev/null - это старый трюк для показа имени файла. – Dominique 15 May 2018 в 12:19
Однако я точно знаю, что конструкция -o для поиска файлов разных типов верна: find ./ -name "*.cpp" -or -name "*.h"

Правда, но приоритет -or не так высок. Из man find:

Please note that -a when specified implicitly (for example by two tests appearing without an explicit operator between them) or explicitly has higher precedence than -o. This means that find . -name afile -o -name bfile -print will never print afile.

Итак:

-name "*.cpp" -or -name "*.h" -exec grep ...

Как:

-name "*.cpp" -or ( -name "*.h" -exec grep ... )

И не нравится:

( -name "*.cpp" -or -name "*.h" ) -exec grep ...

Вам нужно:

find . \( -name '*.cpp' -o -name '*.h' \) -exec grep -H '#include.*Sample\.h' {} +

(предположим, вы использовали /dev/null, чтобы grep распечатать имя файла? Опция -H делает это.)

2
ответ дан 17 July 2018 в 14:15
Однако я точно знаю, что конструкция -o для поиска файлов разных типов верна: find ./ -name "*.cpp" -or -name "*.h"

Правда, но приоритет -or не так высок. Из man find:

Please note that -a when specified implicitly (for example by two tests appearing without an explicit operator between them) or explicitly has higher precedence than -o. This means that find . -name afile -o -name bfile -print will never print afile.

Итак:

-name "*.cpp" -or -name "*.h" -exec grep ...

Как:

-name "*.cpp" -or ( -name "*.h" -exec grep ... )

И не нравится:

( -name "*.cpp" -or -name "*.h" ) -exec grep ...

Вам нужно:

find . \( -name '*.cpp' -o -name '*.h' \) -exec grep -H '#include.*Sample\.h' {} +

(предположим, вы использовали /dev/null, чтобы grep распечатать имя файла? Опция -H делает это.)

2
ответ дан 20 July 2018 в 14:19

При использовании современных grep вам вообще не нужно find, например

grep -r --include='*.cpp' --include='*.h' 'include' . | grep 'Sample\.h'

или - лучше (при условии, что порядок поисковых терминов однозначен)

[ f2]
2
ответ дан 22 May 2018 в 10:42

При использовании современных grep вам вообще не нужно find, например

grep -r --include='*.cpp' --include='*.h' 'include' . | grep 'Sample\.h'

или - лучше (при условии, что порядок поисковых терминов однозначен)

grep -r --include='*.cpp' --include='*.h' 'include.*Sample\.h' .
2
ответ дан 17 July 2018 в 14:15

При использовании современных grep вам вообще не нужно find, например

grep -r --include='*.cpp' --include='*.h' 'include' . | grep 'Sample\.h'

или - лучше (при условии, что порядок поисковых терминов однозначен)

grep -r --include='*.cpp' --include='*.h' 'include.*Sample\.h' .
2
ответ дан 20 July 2018 в 14:19

Другие вопросы по тегам:

Похожие вопросы: