怎么做旅游网站,自己做网站接入微信和支付宝,go 网站开发,做网站经常使用#xff0c;但有些总记不全#xff0c;有时候经常查找#xff0c;这次全部捋清楚做备忘#xff0c;有需要的小伙伴欢迎收藏起来哦#xff01; 查、增、改、删一应俱全#xff0c;非常详细#xff01;
目录
一、查看
查看第2行
查看第2行到第3行
查看第1行、… 经常使用但有些总记不全有时候经常查找这次全部捋清楚做备忘有需要的小伙伴欢迎收藏起来哦 查、增、改、删一应俱全非常详细
目录
一、查看
查看第2行
查看第2行到第3行
查看第1行、第3行
查看从第2行开始到文件结束的内容
查看文件中包含指定字符的行
查看文件中包含指定字符的行数
二、文本内容替换
1替换每行第一个出现的指定内容
2全局替换
3全局替换按每行
4全局替换按指定行数
情景1替换的范围是相连的几行或1行
情景2替换的范围是不相连的几行
5关于定界符
6替换包含斜杠、反斜杠的内容
方案1
方案2
特殊情况如果要替换的既包含/又包含\
特殊情况斜杠替换为反斜杠
7替换包含引号、单引号的内容
双引号替换为x
单引号替换为x
单引号替换为双引号
8替换仅为了打印查看效果不修改原文件时
9一次替换多个原内容
10替换整行内容
情景1整体替换、行数可能变化
情景2整体替换指定行、行数不变
方法1
方法2
情景3操作行替换的是不相连的几行
三追加插入 换行插入给第1、2、3行的每行后都新增一行插入内容x
换行插入给所有行后都新增一行插入内容x
不换行追加给第1行后追加内容x
不换行追加给第2行前插入内容x
不换行追加给文件每行末尾都追加xsed
不换行追加给文件每行末尾都追加xawk
四删除操作
删除空白行
删除指定行
五同一sed操作多个条件不同模式
六用另一个文件的内容替换该文件指定内容
七删除文件中每行前的第一个空格
八删除文件a中每行前的所有空格和所有-符号 一、查看
注意下面每条指令中最后的a是文件名。
查看第2行
sed -n 2p a
查看第2行到第3行
sed -n 2,3p a
查看第1行、第3行
sed -n -e 1p -e 3p a
查看从第2行开始到文件结束的内容
sed -n 2,$p a
上面指令中引号也可以去掉。
查看文件中包含指定字符的行
如下查看文件中包含hello的行
sed -n /hello/p a
或使用awk完成
awk /hello/ a
查看文件中包含指定字符的行数
如下查看文件中包含hello的行的行数
sed -n /hello/p a |wc -l
也可以grep实现
grep -c hello a 二、文本内容替换
1替换每行第一个出现的指定内容
如仅替换每行第一个出现的123
sed s/123/abc/ a
2全局替换
全局替换每行的指定内容为新内容
sed s/123/abc/g a
3全局替换按每行
如按每行从第2个出现时开始进行替换
sed s/123/abc/2g a
4全局替换按指定行数
情景1替换的范围是相连的几行或1行
如下即替换第3行~第5行内容中的123为abc
sed 3,5s/123/abc/g a
当然如果只想替换第3行~第5行中每行第一个123则去掉g就可以了。
情景2替换的范围是不相连的几行
如第1行、第3行
sed -e 3s/123/x/g -e 11s/123/x/g a
或
sed -e 3s/123/x/g;11s/123/x/g a
5关于定界符
上述案例中/是定界符该符号可自行设置如我想换成用#定界
sed s#123#abc#2g a
6替换包含斜杠、反斜杠的内容
方案1
换定界符可实现如下将/替换为x
sed s#/#x#g a
如果不换定界符就是要用\来替换含有\等符号的字符串怎么办
如将文件中斜杠、反斜杠替换为x结果都一样
sed s/\/x/g a
sed: -e expression #1, char 7: unterminated s commandsed s///x/g a
sed: -e expression #1, char 5: unknown option to s
如此会报错。那怎么解决看方案2.
方案2
对于要替换的内容有斜杠的用反斜杠转义即可成功
sed s/\//x/g a
如果反斜杠要替换则也用反斜杠转义
sed s/\\/x/g a
特殊情况如果要替换的既包含/又包含\
如下将文件中的所有斜杠、反斜杠均替换为x
sed s/\//x/g;s/\\/x/g a
特殊情况斜杠替换为反斜杠
sed -i s/\//\\/g a
即都用反斜杠转义即可。 7替换包含引号、单引号的内容
双引号替换为x
如下将双引号替换为x其中双引号要用反斜杠\转义
sed -i s#\#x#g a
单引号替换为x
如下将单引号替换为x其中外围的一对单引号需换为双引号和里面不要交叉即可
sed -i s##x#g a
单引号替换为双引号
但是如果是引号换为另一种引号呢如将单引号替换为双引号
sed -i s##\#g a
即双引号用\转义即可成功。
8替换仅为了打印查看效果不修改原文件时
sed -e
9一次替换多个原内容
解决办法用分号;隔开
举例如替换文件中123为x替换456为y
sed s/123/x/g;s/456/y/g a
10替换整行内容
字符c用来操作指定行如1c指的是第一行1,3c就是第1行~第3行
情景1整体替换、行数可能变化
将第1行完整替换为x
sed -i 1c x a
将第1、2行的所有内容完整替换为x
sed -i 1,2c x a
此时效果是原来的第1、2行消失被替换为了x相当于文件整体少了一行。 注意并不是把第1、2行每行都各自替换为x哦
情景2整体替换指定行、行数不变
将第1、2行的每行内容都替换为x
方法1
sed -i 1c x a | sed -i 2c x a
即用管道符连接多个行操作。
方法2
不使用c使用正则替换的办法来实现
sed -i 1,2s/.*/x/g a
情景3操作行替换的是不相连的几行
如果是不相连的两行如第1行、第3行
sed -i -e 1s/.*/x/g -e 3s/.*/x/g a
或
sed -i -e 1s/.*/x/g;3s/.*/x/g a
三追加插入
下面都是操作a文件。 换行插入给第1、2、3行的每行后都新增一行插入内容x
sed 1,3ax a
如文件a内容是
hello
hello.hello
12345123
操作后变为6行
hello
x
hello.hello
x
12345123
x
换行插入给所有行后都新增一行插入内容x
sed -i ax a 不换行追加给第1行后追加内容x
sed -i 1s/$/x/ a
不换行追加给第2行前插入内容x
sed -i 2s/^/x/ a
不换行追加给文件每行末尾都追加xsed
sed -i s/$/x/ a
不换行追加给文件每行末尾都追加xawk
awk {print $0x} a
或
awk $0$0x a
注意此操作awk不会实际修改文件。 四删除操作
注意下述操作如果只想操作后打印出来而不是真正修改文件则去掉 -i参数即可。
主要是用d字符删除。
删除空白行
sed -i /^$/d a
删除指定行
如删除第1行
sed -i 1d a
删除最后一行
sed -i $d a
删除第2行到第3行
sed -i 2,3d a
删除第2行到尾行
sed -i 2,$d a
删除所有以hello开头的行
sed -i /^hello/d
删除所有包含hello的行
sed -i /hello/d a
五同一sed操作多个条件不同模式
-e选项允许在同一行里执行多条命令。
举例如将第1行替换为x、将文件中123替换为x将456替换为y且上述所有操作实际修改到文件
sed -i -e 1c x -e s/123/x/g;s/456/y/g a
可以看到不同的操作用-e指定多个替换直接可以在一个-e内完成并可以用分号连接。
六用另一个文件的内容替换该文件指定内容
-r来指定目标文件。如下用b文件的内容替换a文件中的所有123
sed -i /123/r b a
七删除文件中每行前的第一个空格
sed s/^ //g a
注意此时仅删除每行开始的第一个空格如果某行开头有多个空格只会删除第一个。
如要要删除每行前所有空格
sed s/^[ ]*// a
八删除文件a中每行前的所有空格和所有-符号
文件a内容如下
cat aaaabbb
-cccddd- eee
操作起来
sed -i s/^[ -]*// a
再次查看
#cat ccc
aaa
bbb
ccc
ddd
eee