GNU/Linux >> Znalost Linux >  >> Linux

10 praktických příkladů Použití zástupných znaků k porovnávání názvů souborů v Linuxu

Zástupné znaky (také označované jako meta znaky) jsou symboly nebo speciální znaky, které představují jiné znaky. Můžete je použít s jakýmkoli příkazem, jako je příkaz ls nebo příkaz rm k vypsání nebo odstranění souborů odpovídajících daným kritériím, receptivně.

Přečtěte si také:10 užitečných praktických příkladů řetězení operátorů v Linuxu

Tyto zástupné znaky jsou interpretovány shellem a výsledky jsou vráceny příkazu, který spustíte. V Linuxu existují tři hlavní zástupné znaky:

  • Hvězdička (*) – odpovídá jednomu nebo více výskytům libovolného znaku, včetně žádného znaku.
  • Otazník (?) – představuje nebo odpovídá jedinému výskytu libovolného znaku.
  • Znaky v hranatých závorkách ([ ]) – odpovídá všem výskytům znaků uzavřených v hranatých závorkách. Je možné použít různé typy znaků (alfanumerické znaky):čísla, písmena, jiné speciální znaky atd.

Musíte pečlivě vybrat, který zástupný znak použít, aby odpovídal správným názvům souborů:je také možné je všechny zkombinovat do jedné operace, jak je vysvětleno v příkladech níže.

Jak porovnat názvy souborů pomocí zástupných znaků v systému Linux

Pro účely tohoto článku použijeme k demonstraci každého příkladu následující soubory.

createbackup.sh  list.sh  lspace.sh        speaker.sh
listopen.sh      lost.sh  rename-files.sh  topprocs.sh

1. Tento příkaz porovná všechny soubory s názvy začínajícími l (což je předpona) a končící jedním nebo více výskyty libovolného znaku.

$ ls -l l*	

2. Tento příklad ukazuje jiné použití * zkopírujte všechny názvy souborů s předponou users-0 a končí jedním nebo více výskyty libovolného znaku.

$ mkdir -p users-info
$ ls users-0*
$ mv -v users-0* users-info/	# Option -v flag enables verbose output

3. Následující příkaz porovná všechny soubory s názvy začínajícími l následovaný libovolným znakem a končící st.sh (což je přípona).

$ ls l?st.sh	

4. Následující příkaz porovná všechny soubory s názvy začínajícími l následovaný libovolným ze znaků v hranaté závorce, ale končící st.sh .

$ ls l[abdcio]st.sh 

Jak kombinovat zástupné znaky, aby odpovídaly názvům souborů v Linuxu

Zástupné znaky můžete zkombinovat a vytvořit tak složitá kritéria pro shodu názvu souboru, jak je popsáno v následujících příkladech.

5. Tento příkaz bude odpovídat všem názvům souborů s předponou libovolnými dvěma znaky následovanými st ale končí jedním nebo více výskyty jakéhokoli znaku.

$ ls
$ ls ??st*

6. Tento příklad odpovídá názvům souborů začínajícím kterýmkoli z těchto znaků [clst] a končí jedním nebo více výskyty libovolného znaku.

$ ls
$ ls [clst]*

7. V těchto příkladech pouze názvy souborů začínající kterýmkoli z těchto znaků [clst] následovaný jedním z těchto [io] a poté libovolný jednotlivý znak následovaný t a nakonec bude uveden jeden nebo více výskytů jakéhokoli znaku.

$ ls
$ ls [clst][io]?t*

8. Zde jsou názvy souborů s předponou jedním nebo více výskyty libovolného znaku, za nimiž následují písmena tar a končící jedním nebo více výskyty jakéhokoli znaku budou odstraněny.

$ ls
$ rm *tar*
$ ls

Jak přiřadit sadu znaků v Linuxu

9. Nyní se podívejme, jak určit sadu znaků. Zvažte níže uvedené názvy souborů obsahující informace o uživatelích systému.

$ ls

users-111.list  users-1AA.list  users-22A.list  users-2aB.txt   users-2ba.txt
users-111.txt   users-1AA.txt   users-22A.txt   users-2AB.txt   users-2bA.txt
users-11A.txt   users-1AB.list  users-2aA.txt   users-2ba.list
users-12A.txt   users-1AB.txt   users-2AB.list  users-2bA.list

Tento příkaz bude odpovídat všem souborům, jejichž název začíná users-i , za kterým následuje číslo, malé písmeno nebo číslo, potom číslo a končí jedním nebo více výskyty libovolného znaku.

$ ls users-[0-9][a-z0-9][0-9]*

Další příkaz porovnává názvy souborů začínající users-i , za kterým následuje číslo, malé nebo velké písmeno nebo číslo, poté číslo a končí jedním nebo více výskyty libovolného znaku.

$ ls users-[0-9][a-zA-Z0-9][0-9]*

Tento příkaz, který následuje, bude odpovídat všem názvům souborů začínajícím users-i , za kterým následuje číslo, malé nebo velké písmeno nebo číslo, poté malé nebo velké písmeno a končí jedním nebo více výskyty libovolného znaku.

$ ls users-[0-9][a-zA-Z0-9][a-zA-Z]*

Jak negovat sadu znaků v Linuxu

10. Sadu znaků můžete také negovat pomocí ! symbol. Následující příkaz vypíše všechny názvy souborů začínající users-i , za kterým následuje číslo, jakýkoli platný znak názvu souboru kromě čísla, potom malé nebo velké písmeno a končí jedním nebo více výskyty libovolného znaku.

$ ls users-[0-9][!0-9][a-zA-Z]*

To je prozatím vše! Pokud jste si vyzkoušeli výše uvedené příklady, měli byste nyní dobře rozumět tomu, jak zástupné znaky fungují, aby odpovídaly názvům souborů v Linuxu.

Můžete si také přečíst následující články, které ukazují příklady použití zástupných znaků v Linuxu:

  1. Jak extrahovat soubory Tar do konkrétního nebo jiného adresáře v systému Linux
  2. 3 způsoby, jak odstranit všechny soubory v adresáři kromě jednoho nebo několika souborů s příponami
  3. 10 užitečných tipů pro psaní efektivních Bash skriptů v Linuxu
  4. Jak používat Awk a regulární výrazy k filtrování textu nebo řetězců v souborech

Pokud se chcete o něco podělit nebo se na něco zeptat, použijte níže uvedený formulář pro komentáře.


Linux
  1. 10 Praktické příklady použití příkazu scp

  2. cp Command v Linuxu:7 praktických příkladů

  3. Linux Shutdown Command:5 praktických příkladů

  1. 5 Praktické příklady příkazu dd v Linuxu

  2. 5 Praktické příklady příkazů linuxové fixační jednotky

  3. 10 Praktické příklady příkazů Linux nm

  1. 16 Praktické příklady příkazu Linux LS pro začátečníky

  2. Zástupné znaky v Linuxu vysvětleny na 10 příkladech

  3. Příklady použití příkazu dmsetup v Linuxu