Skip to content

Instantly share code, notes, and snippets.

@huyanhvn
Last active January 26, 2017 15:18
Show Gist options
  • Save huyanhvn/379b3436ac946f5c7400 to your computer and use it in GitHub Desktop.
Save huyanhvn/379b3436ac946f5c7400 to your computer and use it in GitHub Desktop.
shell string tricks
### REPLACE \n WITH LITERAL '\n'
sed -E ':a;N;$!ba;s/\r{0,1}\n/\\n/g'
### SEARCH AND PRINT REGEX MATCH
echo ... | sed -n -e "s/^.*arn:aws:iam::\(.*\):user.*/\1/p"
### PRINT SEQUENCE
seq -f "10.235.5.%g" 117 126
### SEARCH AND REPLACE IN FILES
grep -E -R -l 'pattern1' . 2>/dev/null | xargs sed -r -i -e 's/pattern1/pattern2/'
(for Mac) ... | xargs sed -i '' 's/pattern1/pattern2/g'
### SEARCH FOR PATTERN THEN PRINT TO BLANK LINES
sed -n '/<pattern>/,/^$/p'
### SEARCH FOR PATTERN THEN PRINT TO LAST LINE, EXCEPT PATTERN
sed -ne '/<pattern>/{s///; :a' -e 'n;p;ba' -e '}'
### PRINT SECOND TO LAST FIELD
awk '{print $(NF-1)}'
### REPLACE 2ND TO LAST
awk '{$(NF-1)=""; print}'
### PRINT FROM SECOND TO LAST FIELD (space delimiter)
cut -d ' ' -f2-
### REPLACE ANY NUMBER OF BLANK SPACE
... | sed 's/ */ /g'
### SUM UP NUMBERS
awk '{s+=$1} END {print s}'
### SPLIT CA BUNDLE INTO INDIVIDUAL CERTS
cat ~/ca-bundle.crt | awk 'split_after==1{n++;split_after=0} /-----END CERTIFICATE-----/ {split_after=1} {print > ("cert" n ".pem")}'
ls cert*.pem | xargs sed -i '/BEGIN CERTIFICATE/,$!d'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment