shell一些常用命令函数的api使用

sed替换字符串(变量)

sed “s/查找字段/替换字段/g”

echo helloworld|sed  ‘s/hello/world/g’

替换中包含变量

sed 's/'$a'/'$b'/' filename

大小写转换 

echo $var | tr 'a-z' 'A-Z'

下划线转为驼峰

awk -F"\t" '{print $1"\t"$9}' paper.txt |tr 'A-Z' 'a-z' |sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/' | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/' | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/' | sed -r 's/([a-z]+)_([a-z])([a-z]+)/\1\U\2\L\3/'

驼峰转为下划线

(利用正则匹配的方式, sed 的 -E 参数开启正则, 然后 sed 语法中, \n(例如 \1) 代表 正则中的 () 包含的内容, 序号从1开始, 比如 上文中, /([A-Z])/_\1/ 指的就是 在 匹配到的 A-Z 前面加上 _)

echo "HelloWorldKurisu" | sed -E 's/([A-Z])/_\1/g' | sed -E 's/^_//g' | tr 'A-Z' 'a-z'

抓取从多少行到多少行,查看日志

sed -n "开始行,结束行p" 

第一个字母大写

foo="bar";
foo=`echo ${foo:0:1} | tr  '[a-z]' '[A-Z]'`${foo:1}

 首字母大小写

sed 's/^\(.\)/\U\1/'
sed 's/^\(.\)/\l\1/'

awk

获取指定两列的数据

awk -F"\t" '{print $1"\t"$9}' paper.txt

字符串分割

cat paper.txt | awk -F 'FROM' '{print $2}'

awk怎么把列根据分隔符转换为多行

awk -F":" '{for(i=1;i<=NF;i++) print $i}' 文件名

awk 拼接有单引号

双引号是拼接,单引号\047

cat nohup.out | grep "needcontent"| awk -F 'splitcontent' '{print "content1\047"$1"\047content2"}' > today.txt

grep

抓取某字符串 -i 忽略大小写

 cat paper.txt | grep -i from

抓取内容,显示行号 -n

grep 'xx' -n filename.txt

在文件夹循环查找某个字符串

grep "要查找的内容" -r ./

linux grep 指定文件后缀名搜索

grep -rn --include="*.c" 'fopen' ./*

匹配不包含字符串

grep -v "hello" filename.txt

任意一个字符或

grep '[::]' filename.txt

查找后缀名为.java 的,且内容包含 BigDecimal 和(<或>) 的文件

find ./ -type f -name "*.java" | xargs grep -E "<|>" | grep "BigDecimal" 
find / -name "*" | xargs grep -i "指定的字符串"

 

cat

变为一行

cat filename.txt | xargs

find

根据文件名查找

find -name "c.*" /home/user/

split命令分割文件成每个文件1000行 

1000行
split mylog -l 1000

以数字为后缀
split -d testfile

merge into 批量更新


MERGE INTO merge_target target 
USING (SELECT B.name,B.age,B.target_id FROM merge_source B) source
ON (target.id=source.target_id) 
WHEN MATCHED THEN 
    UPDATE 
    SET target.name = source.name, 
        target.age = source.age

转载地址:

sed替换字符串(变量) - tigerloveapple - 博客园

shell脚本之sed使用----替换、变量、转义字符 - chismi - 博客园

#shell 下 使用 sed 正则将 驼峰 转为 下划线 · GitHub

例1、以每个文件1000行分割 split命令分割文件成每个文件1000行

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值