Linux中shell字符串分隔、字符串替换、字符串拼接

Linux中shell字符串分隔、字符串替换、字符串拼接

1、从properties⽂件中读取变量

SERVER_NAME=`sed '/project.config/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'`

说明

key=project.config,⽂件名:conf/dubbo.properties

2、字符串替换

${变量/查找/替换值} ⼀个'/'表⽰替换第⼀个'//'表⽰替换所有,当查找出中出现了⼀些需要转义的需要加上\:"/"需要转移成"\/","#"需要转移

成"\#"

var=analy#analy.properties

echo ${var/\#/=}

输出是:analy=analy.properties

3、字符串拼接

#!/bin/bash

name="Shell"

str="Test"

str1=$name$str #中间不能有空格

str2="$name $str" #如果被双引号包围,那么中间可以有空格

str3=$name": "$str #中间可以出现别的字符串

str4="$name: $str" #这样写也可以

str5="${name}Script: ${str}" #这个时候需要给变量名加上⼤括号

echo $str1

echo $str2

echo $str3

echo $str4

echo $str5

运⾏结果:ShellTest

Shell Test

Shell: Test

Shell: Test

ShellScript: Test

4、字符串按“,”分隔

#!/bin/bash

string="hello,shell,haha"

array=(${string//,/ })

for var in ${array[@]}

do

echo $var

done

5、综合应⽤

#!/bin/bash

cd `dirname $0`

BIN_DIR=`pwd`

cd ..

SERVER_NAME=`sed '/project.config/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'`

JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"

array=(${SERVER_NAME//,/ })

for var in ${array[@]}

do

JAVA_OPTS="$JAVA_OPTS -D${var/\#/=}"

echo $var

doneecho $JAVA_OPTS

合集下载

Linux中shell字符串分隔、字符串替换、字符串拼接

Linux中shell字符串分隔、字符串替换、字符串拼接

Linux中shell字符串分隔、字符串替换、字符串拼接

1、从properties⽂件中读取变量

SERVER_NAME=`sed '/project.config/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'`

说明

key=project.config,⽂件名:conf/dubbo.properties

2、字符串替换

${变量/查找/替换值} ⼀个'/'表⽰替换第⼀个'//'表⽰替换所有,当查找出中出现了⼀些需要转义的需要加上\:"/"需要转移成"\/","#"需要转移

成"\#"

var=analy#analy.properties

echo ${var/\#/=}

输出是:analy=analy.properties

3、字符串拼接

#!/bin/bash

name="Shell"

str="Test"

str1=$name$str #中间不能有空格

str2="$name $str" #如果被双引号包围,那么中间可以有空格

str3=$name": "$str #中间可以出现别的字符串

str4="$name: $str" #这样写也可以

str5="${name}Script: ${str}" #这个时候需要给变量名加上⼤括号

echo $str1

echo $str2

echo $str3

echo $str4

echo $str5

运⾏结果:ShellTest

Shell Test

Shell: Test

Shell: Test

ShellScript: Test

4、字符串按“,”分隔

#!/bin/bash

string="hello,shell,haha"

array=(${string//,/ })

for var in ${array[@]}

do

echo $var

done

5、综合应⽤

#!/bin/bash

cd `dirname $0`

BIN_DIR=`pwd`

cd ..

SERVER_NAME=`sed '/project.config/!d;s/.*=//' conf/dubbo.properties | tr -d '\r'`

shell字符串处理总结

shell字符串处理总结

shell字符串处理总结

1. 字符串切⽚

1.1 基于偏移量取字符串

返回字符串变量 string 的字符的长度 ${#string} ,⼀个汉字算⼀个字符

⽰例

[root@centos8 script]#str=" I Love Python "

[root@centos8 script]#echo ${#str}

15

[root@centos8 script]#

返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,到最后的部分, offset的取值在0 到 ${#var}-1 之间(bash4.2后,允许

为负值)

${var:offset}

[root@centos8 script]#str="I Love Python"

[root@centos8 script]#echo ${str:2} # 从第2个字符开始取,默认取后⾯字符的全部,第2个字符不包含在内

Love Python

[root@centos8 script]#

返回字符串变量var中从第offset个字符后(不包括第offset个字符)的字符开始,长度为number的部分 ${var:offset:number}

[root@centos8 script]#str="I Love Shell"

[root@centos8 script]#echo ${str:2:4} # 从第2个字符开始取,取4个字符

Love

[root@centos8 script]#

⽰例

[root@centos8 script]#str="I am CEO I am CTO"

[root@centos8 script]#echo ${str:0:$((${#str}-8))}

I am CEO

[root@centos8 script]#

⽰例:年⽉⽇

[root@centos8 script]#today=$(date +"%Y%m%d")

[root@centos8 script]#echo $today

ifs 用法

ifs 用法

ifs 用法

IFS用法简介

IFS是Linux操作系统中的一个环境变量,它代表了shell中的字段(Fields)分隔符。在shell脚本中,IFS常用于将字符串按照特定的分隔符进行切割并进行处理。

在shell脚本中,IFS的默认值为"空格、制表符、换行符"。我们可以通过修改IFS的值来改变字段的分隔符,从而实现根据不同的需求对字符串进行切割。

具体使用方法如下:

1. 使用IFS切割字符串

要使用IFS切割字符串,可以使用read命令。read命令可以读取一行输入,并将其分割成多个字段,每个字段都会被赋值给后续变量。通过将IFS设置为自定义的分隔符,我们可以根据该分隔符将字符串切分成多个字段。

```shell

#!/bin/bash

string="Hello,World,How,Are,You"

IFS=',' read -ra fields <<< "$string"

for field in "${fields[@]}"; do

echo "$field"

done

``` 上述示例将字符串"Hello,World,How,Are,You"按逗号分隔成多个字段,并输出每个字段。

2. 还原IFS默认值

在使用IFS切割字符串后,为了避免对后续代码造成意外影响,通常需要将IFS的值还原为默认值。可以通过将IFS设置为空来实现还原操作。

```shell

#!/bin/bash

string="Hello,World,How,Are,You"

IFS=',' read -ra fields <<< "$string"

for field in "${fields[@]}"; do

echo "$field"

done

IFS="" # 还原IFS默认值

```

上述示例在切割字符串后,最后将IFS还原为空,以确保后续代码中不受影响。

总结:

IFS是Linux操作系统中的一个环境变量,用于指定shell脚本中的字段分隔符。通过修改IFS的值,我们可以实现将字符串按照指定的分隔符进行切割的功能。使用read命令可以在脚本中灵活地应用IFS的切割能力。为了保证代码的健壮性,在使用IFS切割字符串后,通常需要还原其默认值。

shell 分割符号

shell 分割符号

shell 分割符号

Shell 分割符号是指在 Shell(Unix 或类 Unix 系统)中用于分割不同命令或变量的符号。在 Shell 中,有多种分割符号,包括空格、制表符、分号、换行符、``和$等。

1. 空格和制表符

空格和制表符是最常用的分割符号。在 Shell 中,将不同的命令或变量分开很多时候只需要用空格或制表符。例如,下面的命令:

`ls -l /home/username`

其中,空格将“ls”和“-l”分开,另一个空格将“-l”和“/home/username”分开。

2. 分号

分号可以让你在一行命令中输入多个命令。例如:

`echo hello;echo world`

上面的命令将分别输出“hello”和“world”。

3. 换行符

换行符是指回车符,可以让你将一行命令分为多行。例如:

`echo hello \

> world`

上面的命令将输出“hello world”。

4. ``命令替换

“``”命令替换符号用于将一个命令的输出作为另一个命令的参数。例如:

`cd /etc;ls -l $(grep passwd /etc/passwd)`

上面的命令将在目录“/etc”中找到包含“passwd”的行,并将结果作为参数传给“ls -l”命令。

5. $变量替换

“$”变量替换符号用于将环境变量的值插入到命令中。例如:

`echo $HOME`

上面的命令将输出你的主目录的路径。

总的来说,Shell 分割符号是 Shell 编程中的重要元素,可以让你轻松地将命令和参数分离,从而实现更加灵活的 Shell 编程。熟练地掌握这些符号,可以让你更高效地完成各种任务。

shell指令分隔符

shell指令分隔符

shell指令分隔符

在使用shell编程时,分隔符是非常重要的。它们用于将不同的指令或参数分开,以便shell可以正确地解析和执行它们。在shell中,常见的分隔符有空格、制表符和换行符。

让我们来看看空格。空格是最常见的分隔符之一,用于将指令和参数分开。例如,如果我们想要在shell中执行一个命令,我们可以这样写:

```

ls -l

```

这里,空格将ls和-l分开,告诉shell将ls作为指令,-l作为参数。

除了空格,制表符也是常用的分隔符之一。制表符通常用于对齐文本,但在shell编程中,它也可以用作分隔符。例如,我们可以使用制表符来分隔不同的参数。例如:

```

echo "Hello" "World"

```

这里,制表符将Hello和World分开,告诉shell这是两个不同的参数。

换行符也是一个重要的分隔符。换行符用于分隔不同的指令或命令行。在shell脚本中,我们可以使用换行符来分隔不同的命令,以便shell可以按顺序执行它们。例如:

```

echo "Hello"

echo "World"

```

这里,换行符将两个echo命令分开,告诉shell按顺序执行它们。

在shell编程中,正确使用分隔符非常重要。如果分隔符使用不正确,shell可能无法正确解析和执行指令,导致程序出错或产生意外的结果。因此,在编写shell脚本时,请务必注意使用适当的分隔符,并确保它们被正确放置和使用。

总结一下,shell编程中常用的分隔符有空格、制表符和换行符。它们用于将不同的指令和参数分开,以便shell可以正确解析和执行它们。在编写shell脚本时,请务必注意使用适当的分隔符,并确保它们被正确放置和使用。这样,您就可以编写出高效、可靠的shell脚本了。

linux echo用法

linux echo用法

linux echo用法

Linux中的echo命令是一种在终端输出文本或变量的简单方法。该命令是基于shell的内建命令,可以用于执行脚本、设置环境变量、输出信息等多种用途。本文将详细介绍echo命令的用法。

一、命令格式

echo [选项] [字符串]

二、选项说明

选项|说明

:--:|:--

-e|支持转义字符

-n|忽略输出末尾的换行符

-E|禁用转义字符

三、基本用法

1. 输出字符串

在shell中输出字符串最基本的方法就是通过echo命令来完成。可以通过以下命令将字符串输出到终端:

```

echo hello world

```

输出结果为:

也可以使用双引号或单引号来包裹字符串:

2. 输出变量

除了输出字符串,我们也可以使用echo命令来输出变量。假设现在有一个名为name的变量,可以使用以下命令将变量输出到终端:

``` name="linux"

echo $name

```

```

linux

```

在输出变量时,需要使用$符号来引用变量名。

如果需要将多个字符串或变量连接在一起输出,可以使用空格来分隔它们:

```

name="linux"

version="ubuntu"

echo "$name $version"

echo '$name $version'

```

4. 支持转义字符

echo命令支持一些特殊的转义字符,例如:\n代表换行符,\t代表制表符,\\代表反斜杠等。使用转义字符的方法是在引号内使用:

```

echo "hello\nworld"

echo "hello\tworld"

shell脚本——字符串操作(长度,查找,替换)

shell脚本——字符串操作(长度,查找,替换)

表达式 含义${var} 变量var的值, 与$var相同 ${var-DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 *${var:-DEFAULT} 如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 * ${var=DEFAULT} 如果var没有被声明, 那么就以$DEFAULT作为其值 *${var:=DEFAULT} 如果var没有被声明, 或者其值为空, 那么就以$DEFAULT作为其值 * ${var+OTHER} 如果var声明了, 那么其值就是$OTHER, 否则就为null字符串${var:+OTHER} 如果var被设置了, 那么其值就是$OTHER, 否则就为null字符串 ${var?ERR_MSG} 如果var没被声明, 那么就打印$ERR_MSG *${var:?ERR_MSG} 如果var没被设置, 那么就打印$ERR_MSG * ${!varprefix*} 匹配之前所有以varprefix开头进⾏声明的变量${!varprefix@} 匹配之前所有以varprefix开头进⾏声明的变量

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

操作符号,可以达到类似效果,⼤家知道,使⽤内部操作符会省略启动外部程序等时间,因此速度会⾮常的快。

⼀、判断读取字符串值

加⼊了“*” 不是意思是: 当然, 如果变量var已经被设置的话, 那么其值就是$var.

[chengmo@localhost ~]$ echo ${abc-'ok'}ok[chengmo@localhost ~]$ echo $abc

[chengmo@localhost ~]$ echo ${abc='ok'}ok[chengmo@localhost ~]$ echo $abcok

Shell脚本编写高级技巧使用sed命令进行字符串替换

Shell脚本编写高级技巧使用sed命令进行字符串替换

在Shell脚本编写中,使用sed命令进行字符串替换是一项重要的高级技巧。sed(Stream Editor)是一种流式文本编辑器,它可以对文本进行查找和替换操作,十分灵活和强大。在本文中,我们将介绍sed命令的基本用法,并分享一些应用场景和技巧,帮助读者更好地掌握sed命令的高级用法。

一、基本用法

sed命令的基本用法是将指定的文本流进行处理,并将结果输出到标准输出。它的基本语法如下:

```

sed [选项] ‘命令’ 文件

```

其中,选项可以控制sed命令的行为,命令用于指定sed的操作。常用的选项有:

- `-n`:只打印经过sed处理后的结果,不打印未经处理的文本。

- `-e`:允许对输入文本指定多个sed命令。

命令是sed的核心部分,用于指定sed的操作。常用的命令有:

- `s/old/new/g`:将文本中所有匹配到的old替换为new。 - `p`:打印匹配到的行。

- `d`:删除匹配到的行。

二、替换字符串的常见用法

使用sed命令进行字符串替换时,最常见的用法是将字符串替换为指定的内容。下面是一些常见的sed命令示例:

1. 将指定行中的字符串替换为新的字符串:

```

sed '2s/old/new/g' file.txt

```

这个命令将文件file.txt中第2行的所有匹配到的old替换为new。

2. 将文件中所有匹配到的字符串替换为新的字符串:

```

sed 's/old/new/g' file.txt

```

这个命令将文件file.txt中所有匹配到的old替换为new。

3. 限制只替换指定范围内的字符串:

```

sed '2,4s/old/new/g' file.txt ```

这个命令将文件file.txt中第2行到第4行之间的所有匹配到的old替换为new。

三、应用场景和技巧

Linux文件分割脚本利用Shell脚本实现对大型文件的分割和合并

Linux文件分割脚本利用Shell脚本实现对大型文件的分割和合并

在日常工作和学习中,我们经常会遇到需要处理大型文件的情况。对于这样的文件,我们可能需要进行分割和合并操作,以便更加高效地进行管理和处理。而在Linux系统中,我们可以利用Shell脚本来实现对大型文件的分割和合并。

一、分割文件

1.1 准备工作

在开始分割文件之前,我们需要先准备好要操作的大型文件。假设我们要处理的文件是“example.txt”,文件大小为1GB。

1.2 编写Shell脚本

我们可以使用Shell脚本来实现文件的分割操作。下面是一个简单的例子:

```bash

#!/bin/bash

# 设置分割文件的大小(以MB为单位)

split_size=100

# 设置文件名和路径

file_name="example.txt" output_path="./output"

# 创建输出文件夹

mkdir -p $output_path

# 执行分割操作

split -b ${split_size}M $file_name $output_path/split

```

在上述脚本中,我们首先设置了要分割的文件大小为100MB,文件名为“example.txt”,输出路径为当前目录下的“output”文件夹。然后,我们使用了split命令来执行分割操作。该命令会将原始文件按照指定的大小分割成多个小文件,并保存在输出路径下的“split”文件夹中。

1.3 运行脚本

保存以上脚本为“split.sh”文件,并使用以下命令运行脚本:

```bash

chmod +x split.sh

./split.sh

```

运行成功后,你将在output文件夹下看到拆分后的小文件。

二、合并文件

2.1 准备工作 在合并文件之前,我们需要确保所有分割的小文件都在同一个文件夹下,这里我们可以将其放在上一步创建的output文件夹中。

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

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

Shell脚本是一种强大的脚本语言,可以用于自动化任务以及数据处理。在Shell脚本编写过程中,使用变量替换和字符串操作是非常重要的技巧。本文将介绍如何使用这两个技巧进行高级的数据处理。

一、变量替换

1. 基本变量替换

在Shell脚本中,使用变量可以存储数据并对其进行操作。变量替换可以用来获取变量的值或者对字符串进行操作。

示例:

```shell

name="John"

echo "Hello, $name!" # 输出:Hello, John!

```

在上述示例中,`$name`是变量替换的一种方式,它用实际的变量值替换了变量的位置。

2. 命令替换

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

```shell

date=$(date +%Y-%m-%d)

echo "Today is $date." # 输出:Today is 2022-01-01.

```

在上述示例中,`$(date +%Y-%m-%d)`用于获取当前日期,并将其赋值给变量`date`。

3. 指定默认值

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

示例:

```shell

name=""

echo "Hello, ${name:-Guest}!" # 输出:Hello, Guest!

```

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

二、字符串操作

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

示例:

```shell

str1="Hello"

str2="World"

echo "$str1 $str2!" # 输出:Hello World!

```

在上述示例中,`$str1 $str2`中的空格实现了字符串的拼接。

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