GNU/Linux >> Znalost Linux >  >> Linux

Jak najít délku struny v Bash [Rychlý tip]

Pokud se zabýváte strunami v bash, možná budete potřebovat znát délku řetězce.

Naštěstí je získání délky struny v bash super jednoduché. Řekněme, že máte řetězec s názvem my_string . Jeho délku lze extrahovat jako:

${#my_string}

Zde je příklad pro lepší vysvětlení:

[email protected]:~$ my_string="abhishek"
[email protected]:~$ echo "length is ${#my_string}"
length is 8

To bylo snadné, že? Tuto délku řetězce můžete uložit do jiné proměnné a použít ji později:

[email protected]:~$ my_string="abhishek"
[email protected]:~$ length=${#my_string}
[email protected]:~$ echo "String length is $length"
String length is 8

Stejně jako většina ostatních věcí v Linuxu to není jediný způsob, jak vypočítat délku řetězců v Bash.

Získejte délku řetězce v bash pomocí příkazu expr

Podívejme se na některé další příkazy, které by vám mohly pomoci otestovat délku řetězce v bash.

Jedním z těchto příkazů je příkaz expr. Má několik možností, které jsou užitečné pro možnosti řetězce. Mezi nimi length vám dává délku řetězce.

[email protected]:~$ expr length "my string"
9

Protože příkaz expr vypisuje délku, měli byste ji uložit do proměnné pomocí substituce příkazů.

#!/bin/bash

str="my string"
length=$(expr length "$str")
echo "Length of my string is $length"

Nyní, když spustíte tento bash shell skript, vypíše délku:

[email protected]:~$ bash string.sh 
Length of my string is 9

Pomocí awk získáte délku řetězce

AWK je super všestranný příkaz pro úpravu textu v příkazovém řádku Linuxu. Můžete jej použít také k výpočtu délky řetězce.

Budete muset použít příkaz echo a poté použít přesměrování potrubí k analýze pomocí awk:

[email protected]:~$ echo "my string" | awk '{print length}'
9

Jak vidíte, pokud nejste obeznámeni se základy příkazů awk, není snadné si zapamatovat syntaxi.

Použití příkazu wc k výpočtu délky řetězce

Dalším způsobem, jak získat délku řetězce v Linuxu, je použití příkazu wc. Nyní se příkaz wc používá pro počítání počtu řádků, znaků v souboru.

Řetězec můžete echo a přenést jej do příkazu wc. -m volba udává počet znaků.

[email protected]:~$ echo -n "my string" | wc -m
9

Všimněte si -n možnost s příkazem echo? To je důležité, protože echo automaticky přidá nový řádek znak \n na konci a prodlouží délku provázku o jeden. Pomocí -n možnost, příkaz echo nepřidá nový znak řádku.

K uložení délky řetězce do proměnné můžete použít substituci příkazů, jak jste viděli v předchozích příkladech.

#!/bin/bash

str="my string"
length=$(echo -n "my string" | wc -m)
echo "Length of my string is $length"

Osobně je ${#string} můj ​​preferovaný způsob, jak získat délku řetězce. Snadněji zapamatovatelné.

co ty? Jakou metodu preferujete?


Linux
  1. Jak udělat `hlavu` a `ocas` na vstupu odděleném nulou v Bash?

  2. Jak odebrat uživatele ze skupiny v Linuxu [Rychlý tip]

  3. Jak funguje cat << EOF v bash?

  1. Jak nainstalovat Curl na Ubuntu [Rychlý tip]

  2. Jak gzipovat všechny soubory ve všech podadresářích v bash

  3. bash - vyhledá pozici indexu řetězce podřetězce

  1. Jak synchronizovat titulky s filmem [Rychlý tip]

  2. Jak číst řetězec jako hexadecimální číslo v Bash?

  3. Jak rozdělit řetězec ve skriptu Bash