Last active
November 8, 2019 16:44
-
-
Save isaactzab/db40c7d7a96c1ca0eae34767ffca4d14 to your computer and use it in GitHub Desktop.
Revisions
-
isaactzab revised this gist
Nov 8, 2019 . 1 changed file with 3 additions and 3 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -71,7 +71,7 @@ echo "${orig[@]}"$'\n'"${array[@]}" ## delete a single leading or trailing space from any array item cf. http://codesnippets.joyent.com/posts/show/1816 ```array=( " foo" "bar " baz ) array=( "${array[@]/# /}" ) array=( "${array[@]/% /}" ) @@ -80,8 +80,8 @@ echo "${orig[@]}"$'\n'"${array[@]}" ## further Bash array tips for positional parameters also see: http://codesnippets.joyent.com/posts/show/1706 ## get the first array item ```array=( foo bar baz ) -
isaactzab revised this gist
Nov 8, 2019 . 1 changed file with 27 additions and 14 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -13,61 +13,70 @@ echo "${orig[@]}"$'\n'"${array[@]}" ```orig=( foo babar baz ) array=( foo babar baz ) array=( "${array[@]/ba/TT}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` `orig=( foo bar baz ) ` ## append "foo" to every array item ```array=( foo bar baz ) array=( "${array[@]/%/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## replace last char "r" with "foo" ```array=( foo bar baz ) array=( "${array[@]/%r/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## prepend "foo" to every array item ```array=( foo bar baz ) array=( "${array[@]/#/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## replace "ba" at the beginning with "foo" ```array=( foo bar baz ) array=( "${array[@]/#ba/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## replace any array item matching "b*" with "foo" ```array=( foo bar baz ) array=( "${array[@]/%b*/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## replace any array item matching "*z" with "foo" ```array=( foo bar baz ) array=( "${array[@]/#*z/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## replace any array item matching "*a*" with "foo" ```array=( foo bar baz ) #array=( "${array[@]/%*a*/foo}" ) array=( "${array[@]/#*a*/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## delete a single leading or trailing space from any array item ## cf. http://codesnippets.joyent.com/posts/show/1816 ```array=( " foo" "bar " baz ) array=( "${array[@]/# /}" ) array=( "${array[@]/% /}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## further Bash array tips @@ -77,22 +86,26 @@ echo "${orig[@]}"$'\n'"${array[@]}"``` ## get the first array item ```array=( foo bar baz ) array=( "${array[@]:0:1}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## get the last array item ```array=( foo bar baz ) array=( "${array[@]: -1}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## get all array items after the first one ```array=( foo bar baz ) array=( "${array[@]:1}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## get the second array item ```array=( foo bar baz ) array=( "${array[@]:1:1}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` -
isaactzab revised this gist
Nov 8, 2019 . 1 changed file with 26 additions and 26 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -10,89 +10,89 @@ echo "${orig[@]}"$'\n'"${array[@]}" ``` ## replace only the first "ba" substring with "TT" in every array item ```orig=( foo babar baz ) array=( foo babar baz ) array=( "${array[@]/ba/TT}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` `orig=( foo bar baz ` ## append "foo" to every array item ```array=( foo bar baz ) array=( "${array[@]/%/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## replace last char "r" with "foo" ```array=( foo bar baz ) array=( "${array[@]/%r/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## prepend "foo" to every array item ```array=( foo bar baz ) array=( "${array[@]/#/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## replace "ba" at the beginning with "foo" ```array=( foo bar baz ) array=( "${array[@]/#ba/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## replace any array item matching "b*" with "foo" ```array=( foo bar baz ) array=( "${array[@]/%b*/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## replace any array item matching "*z" with "foo" ```array=( foo bar baz ) array=( "${array[@]/#*z/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## replace any array item matching "*a*" with "foo" ```array=( foo bar baz ) #array=( "${array[@]/%*a*/foo}" ) array=( "${array[@]/#*a*/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## delete a single leading or trailing space from any array item ## cf. http://codesnippets.joyent.com/posts/show/1816 ```array=( " foo" "bar " baz ) array=( "${array[@]/# /}" ) array=( "${array[@]/% /}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## further Bash array tips ## for positional parameters also see: ## http://codesnippets.joyent.com/posts/show/1706 ## get the first array item ```array=( foo bar baz ) array=( "${array[@]:0:1}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## get the last array item ```array=( foo bar baz ) array=( "${array[@]: -1}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## get all array items after the first one ```array=( foo bar baz ) array=( "${array[@]:1}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` ## get the second array item ```array=( foo bar baz ) array=( "${array[@]:1:1}" ) echo "${orig[@]}"$'\n'"${array[@]}"``` -
isaactzab revised this gist
Nov 8, 2019 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,11 +3,11 @@ Original post from: http://codesnippets.joyent.com/posts/show/1826 ## replace any "ba" substring with "TT" in every array item ```orig=( foo babar baz ) array=( foo babar baz ) array=( "${array[@]//ba/TT}" ) echo "${orig[@]}"$'\n'"${array[@]}" ``` ## replace only the first "ba" substring with "TT" in every array item `orig=( foo babar baz ) -
isaactzab created this gist
Nov 8, 2019 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,98 @@ # Modify bash array items without looping Original post from: http://codesnippets.joyent.com/posts/show/1826 ## replace any "ba" substring with "TT" in every array item `orig=( foo babar baz ) array=( foo babar baz ) array=( "${array[@]//ba/TT}" ) echo "${orig[@]}"$'\n'"${array[@]}" ` ## replace only the first "ba" substring with "TT" in every array item `orig=( foo babar baz ) array=( foo babar baz ) array=( "${array[@]/ba/TT}" ) echo "${orig[@]}"$'\n'"${array[@]}"` `orig=( foo bar baz ` ## append "foo" to every array item `array=( foo bar baz ) array=( "${array[@]/%/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## replace last char "r" with "foo" `array=( foo bar baz ) array=( "${array[@]/%r/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## prepend "foo" to every array item `array=( foo bar baz ) array=( "${array[@]/#/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## replace "ba" at the beginning with "foo" `array=( foo bar baz ) array=( "${array[@]/#ba/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## replace any array item matching "b*" with "foo" `array=( foo bar baz ) array=( "${array[@]/%b*/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## replace any array item matching "*z" with "foo" `array=( foo bar baz ) array=( "${array[@]/#*z/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## replace any array item matching "*a*" with "foo" `array=( foo bar baz ) #array=( "${array[@]/%*a*/foo}" ) array=( "${array[@]/#*a*/foo}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## delete a single leading or trailing space from any array item ## cf. http://codesnippets.joyent.com/posts/show/1816 `array=( " foo" "bar " baz ) array=( "${array[@]/# /}" ) array=( "${array[@]/% /}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## further Bash array tips ## for positional parameters also see: ## http://codesnippets.joyent.com/posts/show/1706 ## get the first array item `array=( foo bar baz ) array=( "${array[@]:0:1}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## get the last array item `array=( foo bar baz ) array=( "${array[@]: -1}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## get all array items after the first one `array=( foo bar baz ) array=( "${array[@]:1}" ) echo "${orig[@]}"$'\n'"${array[@]}"` ## get the second array item `array=( foo bar baz ) array=( "${array[@]:1:1}" ) echo "${orig[@]}"$'\n'"${array[@]}"`