如何使用sed替换文本test1中的双引号和单引号
代码语言:javascript复制"wuyi","lisi"
'wuyi','lisi'
{"wuyi":"4","lisi":"5"}
替换双引号为单引号
代码语言:javascript复制[root@linux-92778 data]# sed "s/"/'/g" test1
'wuyi','lisi'
'wuyi','lisi'
{'wuyi':'4','lisi':'5'}
替换单引号为双引号
代码语言:javascript复制[root@linux-92778 data]# sed "s/'/"/g" test1
"wuyi","lisi"
"wuyi","lisi"
{"wuyi":"4","lisi":"5"}
替换json中的大括号
代码语言:javascript复制[root@linux-92778 data]# sed "s/{|}//g" test1
"wuyi","lisi"
'wuyi','lisi'
"wuyi":"4","lisi":"5"
linux 拿一个文件在另外一个文件找相同的内容
data1内容
代码语言:javascript复制{"phone":"18633333333","code":"333333"}
{"phone":"18611111111","code":"111111"}
{"phone":"18655555555","code":"555555"}
{"phone":"18644444444","code":"444444"}
{"phone":"18622222222","code":"222222"}
data2内容
代码语言:javascript复制18600000000
18633333333
18699999999
18611111111
18655555555
方法一
代码语言:javascript复制[root@linux-92778 data]# cat data2 | while read line
> do
> grep $line data1 >> result
> done
[root@linux-92778 data]# cat result
{"phone":"18633333333","code":"333333"}
{"phone":"18611111111","code":"111111"}
{"phone":"18655555555","code":"555555"}
方法二(推荐)
代码语言:javascript复制[root@linux-92778 data]# awk -F '"' '{if(ARGIND==1) phone[$4]=$0}{if(ARGIND>1 && ($1 in phone)) print phone[$1]}' data1 data2
{"phone":"18633333333","code":"333333"}
{"phone":"18611111111","code":"111111"}
{"phone":"18655555555","code":"555555"}
- -F'"': 使用双引号作为字段分隔符。
- if(ARGIND==1)phones[$4]=$0: 如果处理的是第一个文件 (ARGIND 表示当前文件的索引),则将以第四个字段(用双引号括起的内容)为键,整行为值存储在数组 phones 中。
- if(ARGIND>1 && ($1 in phones))print phones[$1]: 如果处理的是第二个文件,并且第一个字段在数组 phones 中存在,则打印相应的数组值(即对应于第一个文件中的完整行)