Extinderea liniilor prin bash, despre linux

Pentru a lucra la siruri de caractere folosind Bash, se folosesc parametrii de extindere (expansiunile parametrilor). Descrierea acestui principiu se gaseste in Bash-ul omului din paragraful 3.5.3 al expansiunii parametrilor Shell.
Descrierea este greu de înțeles. Este mult mai ușor să înțelegeți principiul de lucru pe exemple.

1. Ștergeți caracterele la începutul sau la sfârșitul liniei

Orice caracter unic este marcat ca "?"

Setați variabila STRING:

Pentru a șterge caracterele de la începutul unei linii, utilizați următoarele comenzi: pentru a șterge caracterele de la capătul liniei: Amintiți-vă când să utilizați semnul #. și când% folosește acest mod original:
Simbolurile # $% sunt localizate secvențial pe tastatură și:
# la stânga de $. înseamnă de la începutul liniei
% la dreapta de $. înseamnă sfârșitul liniei

2. Eliminarea expresiilor regulate la începutul sau la sfârșitul liniei

Expresii regulate (expresii regulate sau regExp, regex) - acesta este un șablon șir sau "mască" care specifică regula căutării.

Din nou, setați variabila STRING:

ștergeți expresia regulată de la începutul liniei: ștergeți expresia regulată la sfârșitul liniei: Acum, la fel, dar folosind "*" (asterisc)
ștergeți expresia regulată la începutul liniei (GNU = * U): ștergeți expresia regulată la sfârșitul liniei (Linux = L *):

Folosirea expresiilor regulate poate fi combinată cu "?" (semnul oricărui simbol) (Linux = L * = ?? n *):

3. Utilizarea sistemului dual # 035; # 035; și # 037; # 037;

Dacă ștergeți dintr-un șir de expresii regulate (regex * sau regex *), folosind „#“ și „%“ cu „*“ - îndepărtarea merge până la prima apariție a expresiei regulate. atunci când folosești dublu "# 035; # 035;" și "# 037; # 037;" - la ultimul:

Din nou, setați variabila STRING:

4. Căutați și înlocuiți

5. Extracția substringului folosind offset și lungime $

offset-offset de la marginea liniei

lungimea este lungimea substringului


5.1 Offset cu valori pozitive

Cu valori pozitive de offset, primul caracter al șirului corespunde unei valori "0".

În cazul în care nu este specificată, atunci lungimea substringului este extinsă automat până la capăt.

Exemple cu valori pozitive .
5.2 Offset negativ

Cu valori negative numărarea este de la sfârșitul liniei, iar ultimul caracter al șirului corespunde valorii egală cu "-1".

Pentru a scrie un decalaj negativ între semnul colonului și semnul minus, lăsați un spațiu sau luați o valoare negativă în paranteze.

În cazul în care nu este specificată, atunci lungimea substringului este extinsă automat până la capăt.

Exemple cu valori negative .
5.3 Valori negative .

În cazul în care presupune o valoare negativă, funcționează ca o compensare de la sfârșitul liniei. Rezultatul este un substring între prima și a doua compensări:

Cum să aplicați toate acestea în practică:

Iată diferitele opțiuni de cod pentru schimbarea extensiei de la * .wav la * .mp3 atunci când ștergeți fișierele audio:

6. Numărarea numărului de caractere din șirul $


Găsiți numărul de caractere din fișier:

Aici trebuie notat că fișierul este citit nu doar într-o variabilă, ci într-o matrice, deoarece constă din mai multe linii. Prin urmare, pentru calcularea corectă este necesar să puneți [@]. Dacă nu se face acest lucru, comanda va citi numai primul rând din fișier:

Și adevărul, primul rând conține doar o etichetă și caracterul de rupere a liniei (CR + LF) - și cele 7 caractere.

7. Schimbarea caracterelor

$ - transferă primul caracter la majuscule

$ traduce toate caracterele în majuscule

$ - transferă primul caracter la litere mici

$ traduce toate caracterele în litere mici

> -introduce primul registru de caractere

> -inversează cazul tuturor caracterelor

Tag-uri: linux, bash, shell, expresii regulate, extensii parametru, RegExp, regex, lungime, offset, pentru, in, face. lama, făcut, * .wav, mp3, CR + LF, expresii regulate, tipar, căutare, variabilă, matrice, șir, caractere, superior, inferior, caz