more sed samples

pull/11/head
skywind3000 7 years ago
parent 6ae9175b3c
commit 972bfbc094

@ -1,6 +1,6 @@
############################################################################## ##############################################################################
# BASH CHEATSHEET (中文速查表) - by skywind (created on 2018/02/14) # BASH CHEATSHEET (中文速查表) - by skywind (created on 2018/02/14)
# Version: 36, Last Modified: 2018/03/09 00:05 # Version: 37, Last Modified: 2018/03/09 15:18
# https://github.com/skywind3000/awesome-cheatsheets # https://github.com/skywind3000/awesome-cheatsheets
############################################################################## ##############################################################################
@ -394,12 +394,12 @@ fi
# 可以用 && 命令连接符来做和上面完全等价的事情 # 可以用 && 命令连接符来做和上面完全等价的事情
[ $x -gt 10 ] && [ $x -lt 20 ] && echo "yes, between 10 and 20" [ $x -gt 10 ] && [ $x -lt 20 ] && echo "yes, between 10 and 20"
# POSIX XSI 扩展写法,小括号是字面量,实际输入时前面要加反斜杆 # 小括号和 -a -o 是 POSIX XSI 扩展写法,小括号是字面量,输入时前面要加反斜杆
if [ \( $x -gt 10 \) -a \( $x -lt 20 \) ]; then if [ \( $x -gt 10 \) -a \( $x -lt 20 \) ]; then
echo "yes, between 10 and 20" echo "yes, between 10 and 20"
fi fi
# 可以用 && 命令连接符来做和上面完全等价的事情 # 同样可以用 && 命令连接符来做和上面完全等价的事情
[ \( $x -gt 10 \) -a \( $x -lt 20 \) ] && echo "yes, between 10 and 20" [ \( $x -gt 10 \) -a \( $x -lt 20 \) ] && echo "yes, between 10 and 20"
@ -531,6 +531,8 @@ awk '{s+=$1} END {print s}' file # 计算所有第一列的合
awk 'NR%3==1' file # 从第一行开始,每隔三行打印一行 awk 'NR%3==1' file # 从第一行开始,每隔三行打印一行
sed 's/find/replace/' file # 替换文件中首次出现的字符串并输出结果 sed 's/find/replace/' file # 替换文件中首次出现的字符串并输出结果
sed '10s/find/replace/' file # 替换文件第 10 行内容
sed '10,20s/find/replace/' file # 替换文件中 10-20 行内容
sed -r 's/regex/replace/g' file # 替换文件中所有出现的字符串 sed -r 's/regex/replace/g' file # 替换文件中所有出现的字符串
sed -i 's/find/replace/g' file # 替换文件中所有出现的字符并且覆盖文件 sed -i 's/find/replace/g' file # 替换文件中所有出现的字符并且覆盖文件
sed '/line/s/find/replace/' file # 先搜索行特征再执行替换 sed '/line/s/find/replace/' file # 先搜索行特征再执行替换
@ -539,6 +541,8 @@ sed 's#find#replace#' file # 使用 # 替换 / 来避免 pattern 中有
sed -i -r 's/^\s+//g' file # 删除文件每行头部空格 sed -i -r 's/^\s+//g' file # 删除文件每行头部空格
sed '/^$/d' file # 删除文件空行并打印 sed '/^$/d' file # 删除文件空行并打印
sed -i 's/\s\+$//' file # 删除文件每行末尾多余空格 sed -i 's/\s\+$//' file # 删除文件每行末尾多余空格
sed -n '2p' file # 打印文件第二行
sed -n '2,5p' file # 打印文件第二到第五行
############################################################################## ##############################################################################
@ -749,6 +753,7 @@ https://linuxconfig.org/bash-scripting-tutorial
https://github.com/LeCoupa/awesome-cheatsheets/blob/master/languages/bash.sh https://github.com/LeCoupa/awesome-cheatsheets/blob/master/languages/bash.sh
https://devhints.io/bash https://devhints.io/bash
https://github.com/jlevy/the-art-of-command-line https://github.com/jlevy/the-art-of-command-line
https://yq.aliyun.com/articles/68541
# vim: set ts=4 sw=4 tw=0 et : # vim: set ts=4 sw=4 tw=0 et :

Loading…
Cancel
Save