Linux Shell中awk命令的用法

Linux Shell中awk命令的用法

awk命令

awk也是一个数据处理工具!相较于 sed 常常作用于一整个行的处理, awk 则比较倾向于一行当中分成数个字段来处理。

.awk语言的最基本功能是在文件或字符串中基于指定规则来分解抽取信息,也可以基于指定的规则来输出数据。

有三种方式调用awk

1.命令行方式

awk [-F field-separator] 'commands' input-files

其中,[-F域分隔符]是可选的,因为awk使用空格或tab键作为缺省的域分隔符,因此如果要浏览域间有空格的文本,不必指定这个选项,如果要浏览诸如passwd文件,此文件各域以冒号作为分隔符,则必须指明-F选项,如:awk -F: 'commands' input-file。

注:在linux系统中用环境变量IFS存储分隔符,但根据实际应用也可以改变IFS的值.

例如:

脚本执行结果如下:

commands 是真正awk命令, input-files 是待处理的文件。

iput_files可以是多于一个文件的文件列表,awk将按顺序处理列表中的每个文件。

在awk中,文件的每一行中,由域分隔符分开的每一项称为一个域。通常,在不指名-F域分隔符的情况下,默认的域分隔符是空格或tab键。

2.shell脚本方式

将所有的awk命令插入一个文件,并使awk程序可执行,然后awk命令解释器作为脚本的首行,以便通过键入脚本名称来调用。

相当于shell脚本首行的:#!/bin/sh可以换成:#!/bin/awk

3.将所有的awk命令插入一个单独文件,然后调用:

Awk -f awk-script-file input-files

其中,-f选项加载awk-script-file中的awk脚本,input-files跟上面的是一样的。

awk的模式和动作

任何awk语句都由模式和动作组成(awk_pattern { actions })。

在一个awk脚本中可能有许多语句。

模式部分决定动作语句何时触发及触发事件。处理即对数据进行的操作。如果省略模式部分,动作将时刻保持执行状态。即省略时不对输入记录进行匹配比较就执行相应的actions。

模式可以是任何条件语句或正则表达式等。awk_pattern可以是以下几种类型:

1) 正则表达式用作awk_pattern:/regexp/

例如:awk '/^[a-z]/' input_file

2) 布尔表达式用作awk_pattern,表达式成立时,触发相应的actions执行。

① 表达式中可以使用变量(如字段变量$1,$2等)和/regexp/

② 布尔表达式中的操作符:

关系操作符: <> <= >= == !=

匹配操作符: value ~ /regexp/ 如果value匹配/regexp/,则返回真

value!~ /regexp/ 如果value不匹配/regexp/,则返回真

例如: awk '$2 > 10 {print "ok"}' input_file

awk '$3 ~ /^d/ {print"ok"}' input_file ③ &&(与) 和 ||(或) 可以连接两个/regexp/或者布尔表达式,构成混合表达式。!(非) 可以用于布尔表达式或者/regexp/之前。

例如: awk '($1< 10 ) && ($2 > 10) {print "ok"}' input_file

awk '/^d/ || /x$/ {print"ok"}' input_file

模式包括两个特殊字段 BEGIN和END。使用BEGIN语句设置计数和打印头。BEGIN语句使用在任何文本浏览动作之前,之后文本浏览动作依据输入文本开始执行。END语句用来在awk完成文本浏览动作后打印输出文本总数和结尾状态标志。

实际动作在大括号{ }内指明。动作大多数用来打印,但是还有些更长的代码诸如i f和循环语句及循环退出结构。如果不指明采取动作,awk将打印出所有浏览出来的记录。

awk执行时,其浏览域标记为$1,$2...$n。这种方法称为域标识。使用这些域标识将更容易对域进行进一步处理。

使用$1 , $3表示参照第1和第3域,注意这里用逗号做域分隔。如果希望打印一个有5个域

的记录的所有域,不必指明$1 , $2 , $3 , $4 , $5,可使用$0,意即所有域。

为打印一个域或所有域,使用print命令。这是一个awk动作

awk的运行过程:

①如果BEGIN 区块存在,awk执行它指定的actions。

② awk从输入文件中读取一行,称为一条输入记录。(如果输入文件省略,将从标准输入读取)

③ awk将读入的记录分割成字段,将第1个字段放入变量$1中,第2个字段放入$2,以此类推。$0表示整条记录。

④把当前输入记录依次与每一个awk_cmd中awk_pattern比较,看是否匹配,如果相匹配,就执行对应的actions。如果不匹配,就跳过对应的actions,直到比较完所有的awk_cmd。

⑤当一条输入记录比较了所有的awk_cmd后,awk读取输入的下一行,继续重复步骤③和④,这个过程一直持续,直到awk读取到文件尾。

⑥当awk读完所有的输入行后,如果存在END,就执行相应的actions。

入门实例:

例1:显示/etc/passwd文件中的用户名和登录shell

如果只是显示/etc/passwd的账户和账户对应的shell,而账户与shell之间以tab键分割

如果只是显示/etc/passwd文件中的用户名和登录shell, 而账户与shell之间以逗号分割

注:awk的总是输出到标准输出,如果想让awk输出到文件,可以使用重定向。

例2:显示/etc/passwd文件中的UID大于500的所有用户的用户名和登录shell

例3:如果只是显示/etc/passwd文件中的UID大于500的用户名和登录shell,而账户与shell之间以逗号分割,而且在所有行添加列名name,shell,在最后一行添加"blue,/bin/nosh"。

注:

1.awk 后面接两个单引号并加上大括号 {} 来设定想要对数据进行的处理动作

2.awk工作流程是这样的:先执行BEGING,然后读取文件,读入有\n换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则表示所有域,$1表示第一个域,$n表示第n个域,随后开始执行模式所对应的动作。接着开始读入第二条记录······直到所有的记录都读完,最后执行END操作。

思考题:如何打印所有记录(以/etc/passwd中的内容为例)

例4:搜索/etc/passwd有root关键字的所有行 这种是pattern(模式)的使用示例,匹配了pattern(这里是root)的行才会执行action(没有指定action,默认输出每行的内容)。

搜索支持正则表达式,例如找root开头的:

搜索/etc/passwd有root关键字的所有行,并显示对应的shell

这里指定了action是{print $7}

例5:显示最近登录系统的5个用户信息,只显示用户名和IP地址

使用last命令可以查看最近登录的用户信息。如下图所示:

使用awk命令抽取用户名和IP区域的数据

或

awk内置变量

awk有许多内置变量用来设置环境信息,下面给出了最常用的一些变量。

FILENAME awk浏览的文件名

FS 设置输入域分隔符,等价于命令行-F选项

NF 浏览记录的域个数(每一行($0)拥有的字段总数)

NR 已读的记录数(awk所处理的是第几行数据)

例6:统计/etc/passwd:文件名,每行的行号,每行的列数,对应的完整行内容:

显示所有账户的记录,并带有其记录号,并在END部分打印输入文件名

除了awk的内置变量,awk还可以自定义变量

例7:统计/etc/passwd的账户人数

count是自定义变量。之前的action{}里都是只有一个print,其实print只是一个语句,而action{}可以有多个语句,以;号隔开。

这里没有初始化count,虽然默认是0,但是妥当的做法还是初始化为0:

例8:统计某个文件夹下的文件占用的字节数

如果以M为单位显示:

注意:以上统计没有包括子目录中的文件。

如果想快速查看所有文件的长度及其总和,但要排除子目录,如何实现:

合集下载

linux根据关键字提取内容的命令

linux根据关键字提取内容的命令

linux根据关键字提取内容的命令

在Linux系统中,我们经常会遇到需要根据关键字提取内容的情况。提取内容可以帮助我们从大量的文本中快速找到我们所需要的信息,提高工作效率。本文将介绍一些常用的Linux命令,用于根据关键字提取内容。

1. grep命令:

grep命令是Linux中最常用的文本搜索命令之一。它可以根据关键字在文件中进行搜索,并将包含该关键字的行输出到屏幕上。使用的基本格式如下:

grep "keyword" filename

例如,我们有一个名为sample.txt的文件,其中包含了一些日志记录。如果我们想要查找包含关键字"error"的行,可以使用以下命令:

grep "error" sample.txt

2. awk命令:

awk是一种强大的文本处理工具,在处理大量文本时非常有用。它可以根据指定的条件进行文本的分析和处理。对于根据关键字提取内容,我们可以使用awk的匹配功能。以下是一个示例命令:

awk '/keyword/' filename

例如,我们使用以下命令从一个名为access.log的日志文件中提取包含关键字"GET"的行:

awk '/GET/' access.log

3. sed命令:

sed是一个流式文本编辑器,可以用于处理、替换和转换文本。它也可以用于根据关键字提取内容,以下是一个简单的示例命令:

sed -n '/keyword/p' filename

例如,我们有一个名为data.txt的文件,其中包含了一些数据记录。如果我们想要提取包含关键字"2019"的行,可以使用以下命令:

sed -n '/2019/p' data.txt

4. find命令:

find命令是一个用于查找文件和目录的强大工具。它可以根据条件进行查找,并输出符合条件的文件列表。以下是一个示例命令:

find directory -type f -exec grep -l "keyword" {} +

linux中 shell 修改文件内容

linux中 shell 修改文件内容

linux中 shell 修改文件内容

在Linux操作系统中,使用shell脚本可以轻松地修改文件的内容。Shell是一种命令行解释器,它提供了许多内置的命令和功能,可用于执行各种任务。

要修改文件的内容,我们可以使用以下方法之一:

1. 使用sed命令:sed命令是一种强大的文本处理工具,它可以根据指定的模式匹配和替换文件中的文本。例如,要将文件file.txt中的所有"old_text"替换为"new_text",可以使用以下命令:

```

sed 's/old_text/new_text/g' file.txt > new_file.txt

```

这将创建一个新文件new_file.txt,其内容与原文件file.txt相同,但是所有的"old_text"都被替换为"new_text"。

2. 使用awk命令:awk是一种文本处理工具,可以根据指定的规则对文件进行处理。例如,要将文件file.txt中的第2列替换为"new_text",可以使用以下命令:

```

awk '{ $2 = "new_text"; print }' file.txt > new_file.txt

```

这将创建一个新文件new_file.txt,其第2列的内容被替换为"new_text",其他列的内容保持不变。 3. 使用vim或其他文本编辑器:如果你更喜欢使用文本编辑器来修改文件内容,可以使用vim或其他类似的工具。打开文件后,使用搜索和替换功能来找到并替换指定的文本。

```

vim file.txt

```

在vim中,可以使用以下命令将所有的"old_text"替换为"new_text":

```

:%s/old_text/new_text/g

```

这将在文件的所有行中替换"old_text"为"new_text"。

不论你选择使用哪种方法,都要记得在修改文件内容之前做好备份,以免意外删除或修改了重要的数据。同时也可以参考相关的文档或在线教程,以了解更多关于shell脚本和文本处理工具的使用技巧。

Linux三剑客详解(grep、sed、awk)

Linux三剑客详解(grep、sed、awk)

Linux三剑客详解(grep、sed、awk)

前⾔

在Linux的学习和使⽤当中,⼈们常常提到的三剑客其实指的是grep、sed、awk这三个命令的简称,当熟练掌握了这⼏个命令,可以极⼤的提升运维效率。在讲到这三个命令之前,我们得先了解什么是正则表达式,正则表达式是学习三剑客的基础和前提。

⼀、正则表达式

正则表达式:Regular Expression,描述了⼀种字符串匹配的模式(pattern),可以⽤来检查⼀个串是否含有某种⼦串、将匹配的⼦串替换或者从某个串中取出复核某个条件的⼦串等。

标准正则表达式:

元字符:

. 匹配任意单个字符 [] 匹配指定范围内的任意单个字符 [^] 匹配指定范围外的任意单个字符

字符集合:

[:alnum:] 代表英⽂⼤⼩写字符及数字,亦即 0~9、A~Z、a~z [:alpha:] 代表任何英⽂⼤⼩写字符,亦即 A~Z、a~z [:blank:] 代表空格键与[tab]按键两者 [:cntrl:] 代表键盘上⾯的控制按键,包括CR、LF、Tab、Del等 [:digit:] 代表数字⽽已,即 0~9 [:graph:] 除了空格符(空格键与[tab]按键)外的其他所有按键 [:lower:] 代表⼩写字符,即 a~z [:print:] 代表任何可以被打印出来的字符 [:punct:] 代表标点符号(punctuation symbol),亦即 : " ' ? ! ; : # $ [:upper:] 代表⼤写字符,即 A~Z [:space:] 代表会产⽣空⽩的字符,包括空格键、[tab]、CR等 [:xdigit:] 代表⼗六进制的数字类型,因此包括 0~9、A~F、a~f 的数字与字符 匹配次数(贪婪模式):

* 匹配其前⾯的字符任意次 ? 匹配其前⾯的字符0次或者1次 + 匹配其前⾯的字符⾄少1次 .* 任意长度的任意字符

位置锚定:

^ 锚定⾏⾸,此字符后⾯的任意内容必须出现在⾏⾸ $ 锚定⾏尾,此字符后⾯的任意内容必须出现在⾏尾 ^$ 空⽩⾏

Linux命令行技巧如何在多个文件中查找指定文件大小

Linux命令行技巧如何在多个文件中查找指定文件大小

Linux命令行技巧如何在多个文件中查找指定文件大小

在Linux命令行中,有一些技巧可以帮助我们在多个文件中查找指定文件大小。本文将介绍如何利用命令行工具来实现这个目标。以下是一些常用的方法和命令。

1. 使用find命令:

```shell

find /path/to/directory -size +5M

```

上述命令将在指定目录下搜索大于5M的文件。可以根据需要修改路径和文件大小阈值。

2. 结合du和grep命令:

```shell

du -ah /path/to/directory | grep -P "^\d+M"

```

上述命令将首先使用du命令计算目录中所有文件的大小,并以人类可读的格式显示。然后,grep命令通过正则表达式筛选出大于等于1M的文件。

3. 使用find和du命令结合: ```shell

find /path/to/directory -type f -exec du -ch {} + | grep -P "^\d+M"

```

上述命令首先使用find命令查找目录下的所有文件,然后通过-exec参数将文件传递给du命令,du命令将计算这些文件的大小,并以人类可读的格式显示。最后,grep命令通过正则表达式筛选出大于等于1M的文件。

4. 使用ls命令和awk命令:

```shell

ls -lh /path/to/directory | awk '$5 > 5M {print $5, $9}'

```

上述命令将使用ls命令列出目录下的所有文件,并以人类可读的格式显示文件大小。然后,awk命令将筛选出文件大小大于5M的文件,并打印出文件大小和文件名。

这些方法提供了在多个文件中查找指定文件大小的不同选择。根据具体情况,选择适合自己的方法来查找文件大小。通过掌握这些命令和技巧,可以更高效地管理和查找文件。请根据实际需求选择合适的方法使用。

linuxawk将多个文件结果列合并到一个文件

linuxawk将多个文件结果列合并到一个文件

linuxawk将多个⽂件结果列合并到⼀个⽂件

Linux下awk将多个⽂件的结果列合并到⼀个⽂件在使⽤NS进⾏模拟结果数据处理的时候,往往需要对多组参数的结果进⾏⽐较来鉴别性能的优劣,这⾥编写了⼀个使⽤awk将多个同类型结果⽂件进⾏合并操作的脚本。如,NS模拟结果中,经常出现多个⽹络参数(协议类型、误码率、带宽、背景流、时延等)取不同值条件下进⾏⼀些⽹络指标(RTT,cwnd,吞吐量、⽹络利⽤率、公平性等)统计,这时会产⽣N 多组实验结果,怎样对这么多组结果中的单个指标(常见的吞吐量)进⾏⽐较,如果使⽤⼿⼯粘贴到excel再进⾏绘图就显得任务量很⼤,显得⼈脑⼦⽐较笨(当然,最优秀的程序员永远是最懒的,我恰巧也是其中之⼀)。

⼩提⽰:为了⽅便NS模拟结果直接在excel⾥⾯打开,建议结果数据以⽂本形式(.txt,.dat)保存,各数据列之间⽤制表符\t(excel默认分隔符),这样在⽂件上右键-》Excel打开即可,⽽不⽤在excel ⾥⾯使⽤数据导⼊向导设置分隔符这么⿇烦。⼀切以提⾼⽣产效率和⽣活质量为根本出发点O(∩_∩)O~。

这⾥给出⼀个awk脚本来实现上⾯的问题。test.awk:

#!/usr/bin/awk -f

BEGIN {

#print ARGC;

Index[ARGC];#记录各个⽂件的⾏下标

for(t=1;t<=ARGC;t++) {

Index[t]=0;

}

}

{

#⽂件数ARGC-1,第⼀个参数是应⽤程序名awk.

for(t=1;t<=ARGC;t++) {

if(FILENAME==ARGV[t]) {

line[t,Index[t]]=$0;#$0=整⾏,前提是各个⽂件⾏列之间已经被\t制表符分隔。

#line[t,Index[t]]=sprintf("%s\t%s",$1,$2);#如果固定为⼏列,也可以⽤这个。

Index[t]++;

}

}

}

END {

maxcount=0;

for(i=1;i<=ARGC;i++) {

awk 引用shell变量

awk 引用shell变量

awk 引用shell变量,变量的作用域

1. '' 单引号截断,注意:如果变量的值有空格的话,必须要加双引号"",否则空格会导致 cmd空格option空格params

2.ENVRION["varName"]

3.-v传递参数

1.格式如:awk‘{action}’变量名=变量值,这样传入变量可以在action中获得值,但不能在BEGIN{}中引用

var1="hahah"

echo |awk 'BEGIN{print "Begin:v1="v1} {print "ActionBody:v1="v1}' v1="$var1"

输出结果

Begin:v1=

ActionBody:v1=hahaha

2.格式如:awk –v 变量名=变量值 [–v 变量2=值2 …] 'BEGIN{action}’ 注意:用-v 传入变量可以在3种类型的action 中都可以获得到,但顺序必须要在 action前面。

echo |awk -v v1="haha" 'BEGIN{print "Begin:v1="v1} {print "ActionBody:v1="v1}'

输出结果

Begin:v1=haha

ActionBody:v1=haha

格式如:awk ‘{action}’ 变量名=变量值 ,这样传入变量,可以在action中获得值。

注意:变量名与值放到’{action}’后面。

[chengmo@localhost ~]$ echo | awk 'BEGIN{print test}' test="$test"

这种变量在:BEGIN的action不能获得。

awk -f "query.awk" idnums=10 test.dat

必须要在文件名前面

格式如:awk –v 变量名=变量值 [–v 变量2=值2 …] 'BEGIN{action}’

linuxshell字符串操作详解(长度,读取,替换,截取,连接,对比,删除,位置)

linuxshell字符串操作详解(长度,读取,替换,截取,连接,

对⽐,删除,位置)

1.Linux shell 截取字符变量的前8位

实现⽅法有如下⼏种:

1. expr substr “$a” 1 8

2. echo $a|awk ‘{print substr(,1,8)}’

3. echo $a|cut -c1-8

4. echo $

5. expr $a : ‘\(.\\).*’

6. echo $a|dd bs=1 count=8 2>/dev/null

2.按指定的字符串截取

(1)第⼀种⽅法:

从左向右截取最后⼀个string后的字符串${varible##*string}

从左向右截取第⼀个string后的字符串${varible#*string}

从右向左截取最后⼀个string后的字符串${varible%%string*}

从右向左截取第⼀个string后的字符串${varible%string*}

“*”只是⼀个通配符可以不要

请看下⾯的例⼦:

$ MYVAR=foodforthought.jpg$ echo ${MYVAR##*fo}rthought.jpg$ echo ${MYVAR#*fo}odforthought.jpg

(2)第⼆种⽅法:

${varible:n1:n2}:截取变量varible从n1开始的n2个字符,组成⼀个⼦字符串。可以根据特定字符偏移和长度,使⽤另⼀种形式的变量扩展,

来选择特定⼦字符串。试着在 bash 中输⼊以下⾏:

$ EXCLAIM=cowabunga$ echo ${EXCLAIM:0:3}cow$ echo ${EXCLAIM:3:7}abunga

这种形式的字符串截断⾮常简便,只需⽤冒号分开来指定起始字符和⼦字符串长度。

3.按照指定要求分割:

⽐如获取后缀名

ls -al | cut -d “.” -f2

⼩结:shell对应字符串的处理⽅法很多,根据需求灵活选择。

在做shell批处理程序时候,经常会涉及到字符串相关操作。有很多命令语句,如:awk,sed都可以做字符串各种操作。 其实shell内置⼀系列

awk -v用法

awk -v用法

awk -v用法

1. 什么是awk -v?

awk -v是linux 上常用的一个命令行工具,它用于向Awk脚本中传递变量值。可以将一个外部环境变量值传递给Awk脚本内的变量,以便可以在脚本内使用这个外部环境变量的值。

2. awk -v的使用方法

awk -v命令的一般格式如下:

awk -v var=value 'BEGIN { commands } { pattern} {commands} END

{commands}' filename

其中,-v var=value可以在BEGIN、pattern、END之间的任何位置都可以添加,表示将外部环境变量的value传递给脚本内的变量var。

3. awk -v的实例

例如,把外部变量var1传递给Awk中的变量num:

# awk -v num=var1 'BEGIN { print "the num is ", num }'

在上面的命令中,就把环境变量var1的值传递给Awk中的变量num,在Awk脚本中使用该变量的值。

4. awk -v的优势

使用awk -v可以把一个外部的变量传递给Awk的脚本,从而可以在Awk中使用这个变量的值,如果不使用awk -v,则在Awk中使用这个变量值就变得困难了。这就是Awk -v给我们带来的优势。

linux中查询并输出写入新的文件的命令 -回复

linux中查询并输出写入新的文件的命令 -回复

在Linux系统中,我们可以使用一些命令来查询并输出结果到新的文件中。这些命令可以帮助我们从文件或者其他命令的输出中提取特定的信息,并将其保存到新的文件中,以便以后使用或者进行分析。

一、使用grep命令查询并输出结果到新的文件中

grep命令用于查找文本文件中与指定模式匹配的行,并将其输出到屏幕上。如果我们想要将匹配的结果保存到新的文件中,我们可以使用重定向符号 "> "将输出重定向到新的文件。

例如,我们要查询一个名为"example.txt"的文件中包含特定关键词的行,并将结果保存到名为"result.txt"的新文件中,可以使用以下命令:

grep "keyword" example.txt > result.txt

这个命令将会在"example.txt"中搜索包含关键词"keyword"的行,并将结果输出到"result.txt"文件中。如果"result.txt"文件不存在,系统将会自动创建它。如果文件已经存在,那么命令会覆盖文件中的内容。

二、使用awk命令查询并输出结果到新的文件中

awk是一种强大的文本处理工具,可以用于从文本文件中提取特定的信息。类似于grep命令,awk命令也可以将结果输出到新的文件中。

例如,我们要查询一个名为"example.txt"的文件中包含特定关键词的行,并将结果保存到名为"result.txt"的新文件中,可以使用以下命令:

awk '/keyword/ {print}' example.txt > result.txt

这个命令将会在"example.txt"中搜索包含关键词"keyword"的行,并将结果输出到"result.txt"文件中。与grep命令不同的是,awk命令会输出整行的内容,而不仅仅是匹配的部分。

三、使用sed命令查询并输出结果到新的文件中

sed是一种流式文本编辑器,可以用于将文本文件中的内容进行替换、删除和插入等操作。类似于grep和awk命令,sed命令也可以将结果输出到新的文件中。

Linux中shell去除空行的几种方法

Linux中shell去除空⾏的⼏种⽅法

有时我们在处理和查看⽂件时,经常会有很多空⾏,为了美观或是有需要时,就有必要把这些除⾏去掉了,⽅法如下: #如需将结果输出加⼊重定向 > ⽂件名

1)⽤tr命令

代码如下:cat ⽂件名 |tr -s '\n'

例如: ⽂件名为 test.txt 则 cat test.txt |tr -s '\n'

追加到⽂件: cat ⽂件名 |tr -s '\n' >⽂件名 #此处两个⽂件名相同时候,就达到了清除⽂件中空⾏的效果,重定向后请注意⽂件的权限。

以下其它⽅法同理。

2)⽤sed命令

代码如下:cat ⽂件名 |sed '/^$/d'

3)⽤awk命令

代码如下:cat ⽂件名 |awk '{if($0!="")print}' cat ⽂件名 |awk '{if(length !=0) print $0}'

4)⽤grep命令

代码如下:grep -v '^$' ⽂件名

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档