shell中的字符串的处理

/blog/768947Shell的字符串处理1 得到长度%x="abcd"#方法一%expr length $x4# 方法二%echo ${#x}4# 方法三%expr "$x" : ".*"4# expr 的帮助# STRING : REGEXP anchored pattern match of REGEXP in STRING 2 查找子串%expr index $x "b"2%expr index $x "a"1%expr index $x "b"2%expr index $x "c"3%expr index $x "d"43 得到子字符串# 方法一# expr <string> startpos length%expr substr "$x" 1 3abc%expr substr "$x" 1 5abcd%expr substr "$x" 2 5bcd# ${x:pos:lenght}%echo ${x:1}bcd%echo ${x:2}cd%echo ${x:0}abcd%echo ${x:0:2}ab%pos=1%len=2%echo ${x:$pos:$len}bc# 方法三%echo $x | cut -c 1-3abc4 匹配正则表达式%expr match $x "."1%expr match $x "abc"3%expr match $x "bc"expr "2009/08/10" : "[0-9]\{4\}/[0-9]\{2\}/[0-9]\{2\}$"105 字符串的掐头去尾%x=aabbaarealwwvvww%echo "${x%w*w}"aabbaarealwwvv%echo "${x%%w*w}"aabbaareal%echo "${x##a*a}"%echo "${x#a*a}"bbaarealwwvvww其中, # 表示掐头,因为键盘上# 在$ 的左面。

其中, % 表示%,因为键盘上% 在$ 的右面。

单个的表示最小匹配,双个表示最大匹配。

也就是说,当匹配的有多种方案的时候,选择匹配的最大长度还是最小长度。

6 字符串的替换%x=abcdabcd%echo ${x/a/b} # 只替换一个bbcdabcd%echo ${x//a/b} # 替换所有bbcdbbcd不可以使用regexp ,只能用* ? 的文件扩展方式。

7 字符的处理%x=abcdprintf "%30s\n" $x右边补空格printf "%-30s\n" $x左边补空格8 字符串使用例子字符有可能是数字、字母、空格、其他特殊字符,而字符串有可能是它们任何一种或者多种的组合,在组合之后还可能形成一个具有特定意义的字符串,诸如邮件地址,URL地址等。

概要示例: 下面我们来看看如何判断字符的类型。

// 数字或者数字组合(能够返回结果,即程序退出状态是0,说明属于这种类型,反之不然)$ i=5;j=9423483247234;$ echo $i | grep [0-9]*5$ echo $j | grep [0-9]*9423483247234$ echo $j | grep [0-9]* >/dev/null$ echo $?// 字符组合(小写字母、大写字母、两者的组合)$ c="A"; d="fwefewjuew"; e="fewfEFWefwefe"$ echo $c | grep [A-Z]A$ echo $d | grep "[a-z]*"fwefewjuew$ echo $e | grep "[a-zA-Z]*"fewfEFWefwefe// 字母和数字的组合$ ic="432fwfwefeFWEwefwef"$ echo $ic | grep "[0-9a-zA-Z]*"432fwfwefeFWEwefwef// 空格或者Tab键等$ echo " " | grep " "$ echo -e "\t" | grep "[[:space:]]" #[[:space:]]会同时匹配空格和TAB键$ echo -e " \t" | grep "[[:space:]]"$ echo -e "\t" | grep "<tab>" #<tab>为在键盘上按下TAB键,而不是字符<tab>// 匹配邮件地址$ echo "test2007@" | grep "[0-9a-zA-Z\.]*@[0-9a-zA-Z\.]"test2007@// 匹配URL地址(以http链接为例)$ echo "/article.jsp?newsid=10135" | grep "http://[0-9a-zA-Z\./=?]*" /article.jsp?newsid=10135说明:[1] /dev/null和/dev/zero是非常有趣的两个设备,它们都犹如一个黑洞,什么东西掉进去都会消失殆尽;后者则是一个能源箱,你总能从那里取到0,直到你退出。

两者的部分用法见:关于zero及NULL设备的一些问题[2] [[:space:]]是grep用于匹配空格或者TAB键类型字符串的一种标记,其他类似的标记请查看grep的帮助,man grep。

[3] 上面都是用grep来进行模式匹配,实际上sed, awk都可以用来做模式匹配,关于匹配中用到的正则匹配模式知识,大家可以参考正则匹配模式,更多相关资料请看参考资料。

[4] 如果仅仅想判断字符串是否为空,即判断字符串的长度是否为零,那么可以简单的通过test命令的-z选项来判断,具体用法见test命令,man test.概要示例: 判断字符是否可打印?如何控制字符在终端的显示。

// 用grep判断某个字符是否为可打印字符$ echo "\t\n" | grep "[[:print:]]"\t\n$ echo $?$ echo -e "\t\n" | grep "[[:print:]]"$ echo $?1// 用echo的-e选项在屏幕控制字符显示位置、颜色、背景等$ echo -e "\33[31;40m" #设置前景色为黑色,背景色为红色$ echo -e "\33[11;29H Hello, World\!" #在屏幕的第11行,29列开始打印字符串Hello,World! // 在屏幕的某个位置动态显示当前系统时间$ while :; do echo -e "\33[11;29H "$(date "+%Y-%m-%d %H:%M:%S"); done// 用col命令过滤掉某些控制字符,在处理诸如script,screen等截屏命令的输出结果时,很有用$ screen -L$ cat /bin/cat$ exit$ cat screenlog.0 | col -b # 把一些控制字符过滤后,就可以保留可读的操作日志更多关于字符在终端的显示控制方法,请参考资料[20]和字符显示实例[21]:用shell实现的一个动态时钟。

1.2 字符串的长度概要示例: 除了组成字符串的字符类型外,字符串还有哪些属性呢?组成字符串的字符个数。

下面我们来计算字符串的长度,即所有字符的个数,并简单介绍几种求字符串中指定字符个数的方法。

// 计算某个字符串的长度,即所有字符的个数[这计算方法是五花八门,择其优着而用之] $ var="get the length of me"$ echo ${var} # 这里等同于$varget the length of me$ echo ${#var}20$ expr length "$var"20$ echo $var | awk '{printf("%d\n", length($0));}'20$ echo -n $var | wc -c20// 计算某些指定一个字符或者多个字符的个数$ echo $var | tr -cd g | wc -c2$ echo -n $var | sed -e 's/[^g]//g' | wc -c2$ echo -n $var | sed -e 's/[^gt]//g' | wc -c5// 如果要统计单词个数,更多相关信息见《shell编程之数值计算》之_单词统计_ 实例。

$ echo $var | wc -w5$ echo "$var" | tr " " "\n" | grep get | uniq -c1$ echo "$var" | tr " " "\n" | grep get | wc -l1说明:${}操作符在Bash里头一个“大牛”,能胜任相当多的工作,具体就看看网中人的《shell十三问》之《Shell十三问》之"$(( )) 與$( ) 還有${ } 差在哪?" 吧。

1.3 字符串的存储在我们看来,字符串是一连串的字符而已,但是为了操作方便,我们往往可以让字符串呈现出一定的结构。

在这里,我们不关心字符串在内存中的实际存储结构,仅仅关系它呈现出来的逻辑结构。

比如,这样一个字符串:"get the length of me",我们可以从不同的方面来呈现它。

1.3.1 通过字符在串中的位置来呈现它这样我们就可以通过指定位置来找到某个子串。

合集下载

shell 字符串详解

shell 字符串详解

shell 字符串详解字符串在 Shell 脚本中扮演着重要的角色,因为它们是一种表示和操作文本数据的方式。

在本文中,我们将详细讨论 Shell 字符串的特性和常见用法。

Shell 字符串可以由单引号(')或双引号(")括起来。

单引号会完全保留字符串中的原始字符,不进行任何处理。

而双引号可以扩展变量和转义特殊字符。

1. 字符串赋值:在 Shell 中,可以直接利用等号(=)将文本数据赋值给一个变量,从而创建一个字符串。

例如:str="Hello, World!"2. 字符串长度:要获取字符串的长度,可以使用 Shell 的内置变量${#string}。

例如:length=${#str}echo "字符串的长度为:$length"3. 字符串拼接:在 Shell 中,可以使用拼接操作符(.)将多个字符串拼接在一起。

例如:str1="Hello"str2="World"concat_str=$str1$str2echo "拼接后的字符串为:$concat_str"4. 字符串切片:Shell 提供了对字符串进行切片操作的功能。

你可以通过指定起始位置和长度来截取字符串的一部分。

例如:substring=${str:6:5}echo "截取的子串为:$substring"5. 字符串替换:使用 Shell 的字符串替换功能,可以在一个字符串中匹配并替换特定的子字符串。

例如:new_str=${str/Hello/Hi}echo "替换后的字符串为:$new_str"6. 字符串查找:要在一个字符串中查找特定的子字符串,可以使用 Shell 的字符串查找功能。

例如:if [[ $str == *"World"* ]]; thenecho "找到了子串 World"elseecho "未找到子串 World"fi以上是一些常用的 Shell 字符串操作。

shell字符串的处理(截取,连接,匹配,替换,翻转)

shell字符串的处理(截取,连接,匹配,替换,翻转)

shell字符串的处理(截取,连接,匹配,替换,翻转)shell 字符串的处理(截取,连接,匹配,替换,翻转)本节分享下,字符串处理的内容,包括:截取,连接,匹配,替换,翻转等。

1,字符串的截取⽅法⼀:代码⽰例:echo $a|awk ’{print substr( ,1,8)}’substr是awk中的⼀个⼦函数,对第⼀个参数的进⾏截取,从第⼀个字符开始,共截取8个字符,如果不够就从第⼆个字符中补充⽅法⼆代码⽰例:echo $a|cut -b2-8cut:对标准输⼊的字符串进⾏处理cut -bn-m:以byte为单位,从第n个byte开始,取m个cut -bn,m:以byte为单位,截取第n,m个bytecut -b-n,m:以byte为单位,截取1-n,和第m个-c:以charactor为单位-d:指定分隔符,默认为tab-s:使标准输⼊中没有delimetercut -f1:截取第1个域⽅法三a=123456echo $⽅法四使⽤sed截取字符串的最后两位代码⽰例:echo $test |sed ’s//(.*/)/(../)$//’截取字符串的前2位代码⽰例:echo $test |sed ’s/^/(../)/(.*/)//’2,字符串的⽐较好像没有什么可以⽐较的3,字符串的连接$a$b或者$string4,字符串的翻转⽅法⼀:使⽤rev⽅法⼆:编写脚本实现代码⽰例:#!/usr/bin/awk -f{revline = ""for (i=1;i<=length;i++){revline = substr(,i,1) revline}}END{print revline}5,字符串的匹配grepegrepfgrep6,字符串的排序sort7,字符串的替换bash中:代码⽰例:%x=ababcd%echo $ # 只替换⼀个bbcdabcd%echo $ # 替换所有bbcdbbcdsh中:如何替换/使⽤sed替换所有匹配代码⽰例:echo $test |sed ’s/xx/yy’替换单个匹配8,得到字符串的长度:bash当中$或者expr "$VAR" : ’.*’9,判断字符串是否为数字10,得到字符串中某个字符的重复次数代码⽰例:echo $a |tr "x" "/n" | -l得到的结果需要减去1或者代码⽰例:echo $a |awk -F"x" ’{print NF-1}’11,得到字符串中某个string的重复次数12,将⼀批⽂件中的所有string替换代码⽰例:for i in file_listdovi $i <<-!:g/xxxx/s//XXXX/g:wq!done13,如何将字符串内每两个字符中间插⼊⼀个字符使⽤代码⽰例:echo $test |sed ’s/../&[insert char]/g’======================================================================================================================================概述我们⽇常应⽤中都离不开⽇志。

Shell脚本编写的高级技巧使用正则表达式进行字符串匹配和替换

Shell脚本编写的高级技巧使用正则表达式进行字符串匹配和替换

Shell脚本编写的高级技巧使用正则表达式进行字符串匹配和替换Shell脚本编写的高级技巧:使用正则表达式进行字符串匹配和替换在Shell脚本编写过程中,我们经常需要对字符串进行处理。

而正则表达式是一种强大的工具,能够在字符串中进行模式匹配和替换操作。

本文将介绍如何使用正则表达式进行字符串匹配和替换的高级技巧。

一、基本概念正则表达式是一种用来描述字符模式的工具,它由一系列字符和特殊字符组成。

在Shell脚本中,我们可以使用正则表达式来检测字符串是否符合某种模式、提取符合模式的部分字符串、替换字符串中的某些内容等操作。

在正则表达式中,一些常用的特殊字符有:1. ^:匹配字符串的开头位置。

2. $:匹配字符串的末尾位置。

3. .:匹配任意单个字符。

4. *:匹配前面的字符零次或多次。

5. +:匹配前面的字符一次或多次。

6. ?:匹配前面的字符零次或一次。

7. []:匹配方括号中的任意一个字符。

8. [a-z]:匹配任意一个小写字母。

9. [A-Z]:匹配任意一个大写字母。

10. [0-9]:匹配任意一个数字。

11. \:转义字符,用来匹配特殊字符本身。

二、基本用法1. 字符串匹配在Shell脚本中,我们可以使用正则表达式来判断一个字符串是否匹配某种模式。

使用“=~”操作符可以进行匹配,例如:```shellif [[ $str =~ pattern ]]; thenecho "Matched"elseecho "Not matched"fi```其中,$str为待匹配的字符串,pattern为正则表达式模式。

如果$str 匹配上了该模式,则输出"Matched";否则输出"Not matched"。

2. 字符串提取使用正则表达式可以从一个字符串中提取符合模式的部分字符串。

在Shell脚本中,我们可以使用“=~”操作符配合正则表达式的()来进行提取,例如:```shellif [[ $str =~ pattern ]]; thenresult="${BASH_REMATCH[1]}"echo "Extracted string: $result"elseecho "No match"fi```其中,$str为待提取的字符串,pattern为正则表达式模式。

Shell脚本中的编码和字符集处理技巧

Shell脚本中的编码和字符集处理技巧

Shell脚本中的编码和字符集处理技巧在Shell脚本编程中,编码和字符集处理是一个非常重要的问题。

正确地处理字符编码可以避免脚本运行时出现乱码等问题,并且能够确保脚本在不同平台和环境下的稳定性。

本文将介绍几种常见的处理编码和字符集的技巧,帮助读者更好地编写Shell脚本。

一、字符编码的基础知识1. ASCII码ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是现今最常用的字符编码标准,用7位二进制数表示128个字符。

ASCII码主要包括数字、字母、标点符号等常见字符。

2. Unicode编码Unicode是一个国际标准,用来定义字符集中每个字符的唯一编码。

每个字符都分配了一个唯一的整数码点,可以用不同的编码方式来表示。

其中最常见的编码方式是UTF-8。

3. UTF-8编码UTF-8(8-bit Unicode Transformation Format)是一种变长字符编码方式,它可以用来表示Unicode标准中的任何字符。

UTF-8编码使用1到4个字节表示一个字符,可以处理包含各种字符的文本。

二、字符编码处理技巧1. 指定脚本文件编码在Shell脚本文件的开头,可以使用以下注释行指定脚本的编码格式:```bash#!/bin/bash# coding=utf-8```在这个例子中,我们指定脚本的编码为UTF-8。

这样可以确保脚本文件在执行时使用正确的字符编码。

2. 处理文件编码在处理文件内容时,可以使用`file`命令来确定文件的编码格式:```bash$ file -i filename```这个命令会返回文件的MIME类型,包括编码信息。

3. 转换字符编码如果需要将一个文件的编码从一种格式转换为另一种格式,可以使用`iconv`命令:```bash$ iconv -f source_encoding -t target_encoding source_file -o target_file```其中,`source_encoding`是源文件的编码格式,`target_encoding`是目标文件的编码格式。

Shell脚本中的字符串操作技巧

Shell脚本中的字符串操作技巧

Shell脚本中的字符串操作技巧一、字符串的定义与赋值在Shell脚本中,字符串的定义与赋值可以通过以下方式实现:1. 使用单引号或双引号将字符串括起来,例如:```shellstr1='Hello World'str2="Shell Script"```2. 直接将命令的输出结果赋给字符串,例如:```shellstr3=$(ls)```在以上例子中,str1的值为"Hello World",str2的值为"Shell Script",str3的值为当前目录下的所有文件列表。

二、字符串的长度计算若想获取一个字符串的长度,可以使用Shell脚本中的内建变量${#string},例如:```shelllength=${#str1}echo "字符串str1的长度为:${length}"```执行以上脚本后,输出的结果为:"字符串str1的长度为:11"。

三、字符串的切片操作1. 获取子字符串:可以使用变量的下标来获取字符串的某一部分,下标从0开始计数。

例如,获取字符串"Shell Script"中的"Shell"可以通过以下方式实现:```shellsub_str=${str2:0:5}echo "获取到的子字符串为:${sub_str}"```执行以上脚本后,输出的结果为:"获取到的子字符串为:Shell"。

其中,0表示起始位置,5表示子字符串的长度。

2. 删除子字符串:可以使用变量的下标来删除字符串中的某一部分,例如,删除字符串"Shell Script"中的"Script"可以通过以下方式实现:```shellnew_str=${str2% Script}echo "删除子字符串后的结果为:${new_str}"```执行以上脚本后,输出的结果为:"删除子字符串后的结果为:Shell"。

Shell脚本中的数据抓取和处理技巧

Shell脚本中的数据抓取和处理技巧

Shell脚本中的数据抓取和处理技巧Shell脚本是一种在Unix、Linux系统中广泛使用的脚本语言,它可以帮助我们完成系统管理、任务自动化等工作。

在Shell脚本中,数据的抓取和处理是一项重要的任务。

本文将介绍一些在Shell脚本中常用的数据抓取和处理技巧,帮助读者更加高效地处理和利用数据。

一、命令输出的数据抓取技巧在Shell脚本中,我们经常需要执行某个命令,并将其输出结果进行处理。

以下是一些常用的命令输出数据抓取技巧。

1. 使用变量接收命令输出在Shell脚本中,可以使用变量来接收命令的输出结果。

例如,我们可以使用以下方式将命令“ls”的输出结果保存在变量“output”中:```shelloutput=$(ls)```通过这种方式,我们可以随后对变量“output”进行进一步处理,例如进行字符串匹配、截取等操作。

2. 使用管道(|)传递数据管道是Shell脚本中非常有用的功能,它可以将一个命令的输出作为另一个命令的输入。

例如,我们可以使用以下方式将命令“ps -ef”得到的进程列表传递给命令“grep ssh”进行过滤:```shellps -ef | grep ssh```通过这种方式,可以实现对命令输出数据的灵活处理和过滤。

3. 使用重定向将输出保存至文件有时候,我们需要将命令的输出结果保存至文件中,以便后续处理。

可以使用重定向符号(>)将输出结果重定向至文件。

例如,下面的命令将“ls”的输出结果保存在文件“output.txt”中:```shellls > output.txt```通过这种方式,我们可以将命令输出的数据保存下来,以便后续的操作和分析。

二、数据处理技巧Shell脚本中,对于抓取到的数据,我们经常需要进行进一步的处理和分析。

以下是一些Shell脚本中常用的数据处理技巧。

1. 字符串操作在Shell脚本中,可以对抓取到的字符串进行各种操作,例如:- 字符串截取:可以使用“${string: start: length}”的方式对字符串进行截取。

shell 字符运算

shell 字符运算shell 字符运算是指在Linux shell 环境中,对字符类型的操作和运算。

在Shell 脚本编程中,字符运算经常用于字符串比较、截取、连接和替换等操作。

本文将详细介绍shell 字符运算的各种用法,并给出示例以加深理解。

一、比较运算在shell 中,可以使用不同的运算符来对字符进行比较。

常用的比较运算符包括:等于(=)、不等于(!=)、大于(>)、小于(<)、大于等于(-gt)、小于等于(-lt)等。

以下是一些示例:1. 判断两个字符串是否相等:if [ "str1" = "str2" ]; thenecho "字符串相等"elseecho "字符串不相等"fi2. 判断字符串长度是否相等:if [ {#str1} -eq {#str2} ]; then echo "字符串长度相等" elseecho "字符串长度不相等" fi3. 判断字符串是否为空:if [ -z "str" ]; thenecho "字符串为空"elseecho "字符串不为空"fi4. 判断字符串是否不为空:if [ -n "str" ]; thenecho "字符串不为空" elseecho "字符串为空"fi二、截取字符串在shell 中,可以使用substring 的方式截取字符串的一部分。

常用的substring 方式有:`{str:position:length}`、`{str:start}`、`{str:start:length}`等。

以下是一些示例:1. 从字符串的指定位置开始截取指定长度的子串:str="Hello, world!"sub_str={str:7:5}echo sub_str # 输出结果:world2. 从字符串的指定位置开始截取到末尾的子串:str="Hello, world!"sub_str={str:7}echo sub_str # 输出结果:world!3. 从字符串的指定位置开始截取到指定位置的子串:str="Hello, world!"sub_str={str:7:3}echo sub_str # 输出结果:wor三、连接字符串在shell 中,可以使用连接运算符(.)来连接两个字符串。

shell分割字符串函数

shell分割字符串函数在Shell脚本中,可以使用多种方法来分割字符串。

下面我将介绍几种常用的方法:1. 使用IFS分隔符:可以使用内置的IFS(Internal Field Separator)环境变量来指定分隔符,然后使用read命令来分割字符串。

示例代码如下: shell.#!/bin/bash.string="Hello,World,How,Are,You"IFS=',' read -ra parts <<< "$string"for part in "${parts[@]}"; do.echo "$part"done.运行以上代码,输出结果为:Hello.World.How.Are.You.在这个例子中,我们将字符串以逗号作为分隔符,使用read命令将分割后的部分存储到数组parts中,然后遍历数组并输出每个部分。

2. 使用cut命令:cut命令可以用于从字符串中提取指定字段。

可以使用-d选项指定分隔符,-f选项指定要提取的字段。

示例代码如下:shell.#!/bin/bash.string="Hello,World,How,Are,You"parts=$(echo "$string" | cut -d',' -f1-)。

for part in $parts; do.echo "$part"done.运行以上代码,输出结果与上述方法相同。

3. 使用awk命令:awk是一种强大的文本处理工具,也可以用于分割字符串。

可以使用FS变量指定分隔符,然后使用awk的内置函数split来分割字符串。

示例代码如下:shell.#!/bin/bash.string="Hello,World,How,Are,You"parts=$(awk -F',' '{split($0, arr, ","); for (i in arr) print arr[i]}' <<< "$string")。

高级Shell脚本编写技巧使用变量替换和字符串操作进行数据处理

高级Shell脚本编写技巧使用变量替换和字符串操作进行数据处理Shell脚本是一种强大的脚本语言,可以用于自动化任务以及数据处理。

在Shell脚本编写过程中,使用变量替换和字符串操作是非常重要的技巧。

本文将介绍如何使用这两个技巧进行高级的数据处理。

一、变量替换1. 基本变量替换在Shell脚本中,使用变量可以存储数据并对其进行操作。

变量替换可以用来获取变量的值或者对字符串进行操作。

示例:```shellname="John"echo "Hello, $name!" # 输出:Hello, John!```在上述示例中,`$name`是变量替换的一种方式,它用实际的变量值替换了变量的位置。

2. 命令替换除了基本的变量替换,Shell脚本还支持命令替换,可以将命令的输出作为变量的值。

示例:```shelldate=$(date +%Y-%m-%d)echo "Today is $date." # 输出:Today is 2022-01-01.```在上述示例中,`$(date +%Y-%m-%d)`用于获取当前日期,并将其赋值给变量`date`。

3. 指定默认值当变量的值为空时,可以使用变量替换来指定默认值。

示例:```shellname=""echo "Hello, ${name:-Guest}!" # 输出:Hello, Guest!```在上述示例中,`${name:-Guest}`表示如果变量`name`的值为空,则输出默认值`Guest`。

二、字符串操作1. 字符串拼接在Shell脚本中,使用`.`操作符可以将字符串拼接起来。

示例:```shellstr1="Hello"str2="World"echo "$str1 $str2!" # 输出:Hello World!```在上述示例中,`$str1 $str2`中的空格实现了字符串的拼接。

Shell中字符串分割的三种方法

Shell中字符串分割的三种⽅法问题:对于’1,2,3,4,5’这样的字符串输出采⽤,分隔开的1 2 3 4 5特征:在字符串中没有空格解决⽅法1:[plain]1. #!/bin/bash2. var=’1,2,3,4,5’3. var=${var//,/ } #这⾥是将var中的,替换为空格4. for element in $var5. do6. echo $element7. done若原来字符串中有空格如:’mark:x:0:0:this is a test user:/var/mark:nologin’这样的字符串,要将:分隔的字符串输出,上⾯的⽅法会将this is a test user分别输出,这个是不对的。

对于这种情况解决⽅法2:[plain]1. #!/bin/bash2. user=’mark:x:0:0:this is a test user:/var/mark:nologin’3. for((i=1;i<=7;i++))4. do5. echo $user|cut -d ":" -f$i6. done上⾯这种⽅法是确定字符串分隔后的长度的,要是写的更通⽤⼀点,向下⾯这样解决⽅法3:[plain]1. #!/bin/bash2. user=’mark:x:0:0:this is a test user:/var/mark:nologin’3. i=14. while((1==1))5. do6. split=`echo $user|cut -d ":" -f$i`7. if [ "$split" != "" ]8. then9. ((i++))10. echo $split11. else12. break13. fi14. done这种⽅法不需要知道分隔后的字符串的个数,具有更好的通⽤性。

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