1. The length of the string, for example: |
* $ Var = "Get the length of me" |
$ Echo $ {# var} |
20 |
* $ Expr length "$ Var" # note that double quotation marks are used. |
20 |
* $ Echo $ var | awk '{printf ("% d", length ($0 ))}' |
20 |
* $ Echo-N $ var | WC-C # echo: The line break is automatically output each time the output is made.-N indicates that line break is deployed. |
20 |
|
2. Obtain the number of certain characters in a string, such |
* $ Echo $ var | tr-cd g | WC-C |
2 |
$ Echo-N $ var | SED's/[^ g] // G' | WC-C |
2 |
$ Echo-N $ var | SED's/[^ gt] // G' | WC-C |
5 |
|
3. count the number of words |
* $ Echo $ var | WC-W |
|
4. the array data structure provided by bash, which is based on numbers, is the same as that of the C language starting from 0: |
* $ Var = "Get length of me" |
$ Var_arr = ($ var) # store the VaR string as an array in var_arr. It is separated by spaces by default. |
$ Echo $ {var_arr [0] }$ {var_arr [1] }$ {var_arr [2] }$ {var_arr [3] }$ {var_arr [4]} |
Get the length of me |
$ Echo $ {var_arr [@]} # @ indicates the entire string |
Get the length of me |
$ Echo $ {var_arr [*]} # * indicates the entire string |
Get the length of me |
$ Echo $ {# var_arr [@]} # obtain the number of elements in the entire character array. |
5 |
$ Echo $ {# var_arr [0]} # returns the number of characters in a string. |
3 |
$ Var_arr [5] = "new_element" # assign a value directly to the array element |
$ Echo $ {var_arr [@]} |
Get the length of me new_element |
$ Echo $ {# var_arr [@]} |
6 |
* $ For I in $ var; do echo $ I ""; done; |
Get the length of me |
|
5. arrays in awk: |
* Echo $ var | awk '{printf ("% d % s \ n", split ($0, var_arr, ""), var_arr [1])}' |
Split splits the string by space, stores it in var_arr, and returns the length of the array. Note that the subscript of the first element is 1 instead of 0. |
* Awk divides a row into several fields by space and uses $1, $2, $3... for reference. $0 indicates the whole row, and NF indicates the total number of fields in the row. |
* Echo $ var | awk '{split ($0, var_arr, ""); For (I in var_arr) printf ("% s", var_arr [I]);}' |
In the for loop, the variable of the loop is subscript. |
* Echo $ var | awk '{split ($0, var_arr, ""); Delete var_arr [1]}' |
Delete the first array element |
|
6. Obtain the substring |
* $ Var = "Get length of me" |
$ Echo $ {var: 0: 3} |
Get |
$ Echo $ {VAR (-2)} # reverse direction |
Me |
$ Echo 'expr substr "$ Var" 5 3' |
The |
$ Echo $ var | awk '{printf ("% s \ n", substr ($, 6)}' # select 6 characters from the ninth position |
Length |
* Use cut to retrieve substrings |
$ Echo $ var | cut-d ""-F 5 |
Me |
* $ Echo $ var | SED's/[A-Z] * // G' |
Get |
Delete space + String |
$ Echo $ var | SED's/[A-Z] * // G' |
Me |
Delete string + Space |
|
7. Matching for substrings |
* $ Echo $ {var % *} # Start from the rightmost side and delete all characters on the rightmost side of the space |
Get |
* $ Echo $ {var % *} # Delete All characters on the right of the first space from the rightmost side |
Get the length |
* $ Echo $ {var ###*} # Delete All characters on the left of the rightmost space from the leftmost corner. |
Me |
* $ Echo $ {var #*} # Delete All characters on the left of the first space from the leftmost corner. |
The length of me |
|
8. Sed supports row-based printing. Remember to use tr to replace spaces with row numbers. |
* $ Echo $ var | TR "\ n" | sed-N 5 p |
Me |
* $ Echo $ var | TR "\ n" | sed-N 1 p |
Get |
|
9. tr to get the substring |
* $ Echo $ var | tr-d "" |
Getthelengthofme |
* $ Echo $ var | tr-cd "[A-Z]" # Keep Only letters |
Getthelengthofme |
|
10. head and tail |
* $ Echo "abcdefghijk" | head-C 4 |
ABCD |
* $ Echo "abcdefghijk" | tail-C 4 |
Hijk |
|
11. query strings |
* $ Var = "Get the length of me" |
$ Expr Index "$ Var" t |
3 |
* $ Echo $ var | awk '{printf ("% d \ n", match ($0, ""));}' |
5 |
|
12. substring replacement |
* $ Var = "Get the length of me" |
$ Echo $ {var // _} # Replace the first space with an underscore |
Get_the length of me |
$ Echo $ {var // _} # Replace all spaces with underscores |
Get_the_length_of_me |
$ Echo $ var | awk '{sub ("", "_", $0); printf ("% s \ n", $0 );}' |
Get_the length of me |
$ Echo $ var | awk '{gsub ("", "_", $0); printf ("% s \ n", $0 );}' |
Get_the_length_of_me |
$ Echo $ var | SED's //_/' |
Get_the length of me |
$ Echo $ var | TR """_" |
Get_the_length_of_me |
$ Echo $ var | TR "[A-Z]" [A-Z]" |
Get the length of me |
|
13. TAC will display the text content upside down, just as the name is different from cat, |
The function is the opposite of cat. |
|
14. Insert a substring |
* $ Var = "Get the length of me" |
$ Echo $ {var // _} # Add _ before the first space _ |
Get _ the length of me |
$ Echo $ {var // _} # Add _ before all spaces _ |
Get _ The _ length _ of _ me |
$ Echo $ {var //_} |
Get _ the length of me |
$ Echo $ {var // _} # Add _ after all spaces _ |
Get _ The _ length _ of _ me |
|
* $ Echo $ var | SED's/\ (\)/\ 1 _/'# Add _ after the first space _ |
Get _ the length of me |
$ Echo $ var | SED's/\ (\)/\ 1 _/G' |
Get _ The _ length _ of _ me |
$ Echo $ var | SED's/\ ([A-Z] * \) \ ([A-Z] * \) /\ 2 \ 1/'# change the get and the location |
The get length of me |
|
15. delete a substring |
* $ Var = "Get the length of me" |
$ Echo $ {var ///} |
Getthelengthofme |
|
* $ Echo $ var | awk '{gsub ("", "", $0); printf ("% s", $0 );}' |
Getthelengthofme |
|
* $ Echo $ var | SED's // G' |
Getthelengthofme |
|
* $ Echo $ var | tr-d "" |
Getthelengthofme |
|
16. Use the test command to compare substrings |
|
17. Sort substrings |
* $ Echo $ var | TR "\ n" | sort # Positive Sorting |
Get |
Length |
Me |
Of |
The |
$ Echo $ var | TR "\ n" | sort-R |
The |
Of |
Me |
Length |
Get |
* $ Cat data.txt | TR "\ n" | sort-n |
|
18. hexadecimal conversion |
* $ Echo "IBASE = 10; obase = 16; 10" | BC |
A |
|
19. Regular Expression Processing URL |
* $ Url = "ftp: // anonymous: [email protected]/software/scim-1.4.7.tar.gz" |
$ Echo $ URL | grep "ftp: // [A-Z] *: [A-Z] * @ [a-z0-9 \./-] *" # determine the validity of the URL |
FTP: // anonymous: [email protected]/software/scim-1.4.7.tar.gz |
* $ Echo "$ URL" "$ (expr Index" $ URL ":)" | awk '{printf ("% s \ n", substr ($, $2-1);} '# intercept protocol |
FTP |
$ Echo $ {URL % :*} |
FTP |
* $ Echo $ {URL ### * @} | cut-d "/"-F 1 # capture domain names |
2.16.lzu.edu.cn |
$ TMP =$ {URL ##* @}; echo $ {TMP % /*} |
2.16.lzu.edu.cn |
* $ TMP =$ {URL ##* @}; echo $ {TMP %/*} # truncate path |
2.16.lzu.edu.cn/software |
* $ Echo $ {URL ##*/} # capture the file name |
Scim-1.4.7.tar.gz |
* $ Echo $ URL | SED's/. * [0-9]. // G' # specifies the object type. |
Tar.gz |
|
20. Sed and awk match the rows in the file |
* $ Sed-N 7,9 P readme # print the README7-9 line |
|
21. Process formatted text |
* $ CAT/etc/passwd | cut-d ":"-F # truncate the user name and group in the/etc/passwd file |
* $ CAT/etc/group | cut-d ":"-F # truncate the group name and group ID in the/etc/group file |
|
22. File Association operations |
* $ Join-O 1.1, 2.1-T ":"-1 4-2 3/etc/passwd/etc/group |
# The join command is used to connect two files, similar to the connection between two tables in the database. -T specifies the delimiter, |
-1 4-2 3: Specify the group ID according to the fourth column of the First file and the third column of the Second file. |
Connection.-O 1.1 2.1 indicates that only the first column of the First file and the first column of the Second file are output.
References
================ Shell programming example -- by Falcon
|