三剑客
从底向前读取文件,选取低2~5行,截取第二列,根据i截取1到2列,最后获取第2个字符
tac hello-worldc.c |sed -n 2,5p|awk '{print $2}'|cut -d 'i' -f1,2|cut -b 2
匹配后统计排序,行首加上本行在文中出现的次数
sort -n纯数字排列,sort -r反向颠倒序列
cat nowcoder.txt|grep "23/Apr/2020"|awk '{print $1}'|sort -n| uniq -c|sort -r
##sed操作文件
sed参数传递,以rem_one开头的
sed -i 's/^rem_one=.*/'$(echo $a)'/g' test.sh
sed选取1,2行和第8行
df -h|sed -n -e 1,2p -e 8p
根据内容查找行数
a=$( grep -n "${TMUX} send-keys -t\${s_name}:\${w_ot_name} 'export EF_POLL_USEC=10' C-m" start_eqs_ot.sh |cut -b '1-2')
指定行首插入
sed -i ""$a"s/\${TMUX}/#&/" 文件名.sh
指定行尾插入
指定行数,并指定插入在1之后添加b
sed -i 's/1/&B/' /tmp/input.txt
在指定行的下行插入
\n表示换行符
sed -i "11s:$:\n\t\t<skip_and_return_ok value="'"Y"'" "/">:g" file.sh
带参数替换
sed -i 's/^'DRIVER_TYPE'=.*/'DRIVER_TYPE'='cherry_kiwi_$(echo $relea$(uname -r)_20210527)'/g' $p
^表示头部开始,=.*表示匹配等号后的全部,echo读取出参数
去掉文本里的^M
sed -i ‘s/^M//g' filename
注意:^M的输入方式是 Ctrl + v ,然后Ctrl + M
awk指定行列
w|awk "NR==1"'{print $6}' 此命令为一行6列参数
Grep匹配
Grep选择匹配
grep -E 'a|b' wait.sh
空行匹配
nginx.conf 文件中以#开头的行和空行过滤
grep -vE ‘^\*#|^$’ nginx.conf
符号 含义 举例
? 匹配前一个字符0或1次 "abc?"满足的例子ab、mabcd
+ 匹配前一个字符≥1次 "abc+"满足的例子abcd、abcccdd
{
}