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 - 博客园