Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在shell脚本中操作字符串_Shell_Unix_Scripting_String - Fatal编程技术网

在shell脚本中操作字符串

在shell脚本中操作字符串,shell,unix,scripting,string,Shell,Unix,Scripting,String,出于某种目的,我正在编写一个shell脚本。我有一个形式的变量-- 现在,我需要操作变量var以获取索引=后的字符串。也就是说,我应该“制定政策”。对于许多其他变量,“=”的值不是常数,我也需要对此进行分析。像 var2 = "bgroup = set bgroup port" var3 = "utm = set security utm" 你能告诉我怎么做吗 ${var#*=} 从左侧删除最短匹配的*=。请注意,这是不适当的:如果要保存结果,必须将结果存储在变量中 另一方面,这是为bas

出于某种目的,我正在编写一个shell脚本。我有一个形式的变量--

现在,我需要操作变量var以获取索引
=
后的字符串。也就是说,我应该“制定政策”。对于许多其他变量,“=”的值不是常数,我也需要对此进行分析。像

var2 = "bgroup = set bgroup port"
var3 = "utm = set security utm" 
你能告诉我怎么做吗

${var#*=}
从左侧删除最短匹配的
*=
。请注意,这是不适当的:如果要保存结果,必须将结果存储在变量中

另一方面,这是为bash准备的。AFAIK它也适用于ksh和zsh,但不适用于csh或tcsh

从左侧删除最短匹配的
*=
。请注意,这是不适当的:如果要保存结果,必须将结果存储在变量中


另一方面,这是为bash准备的。当然,它也适用于ksh和zsh,但不适用于csh或tcsh。

其他不依赖于您拥有的shell的方式

$ var1="policy=set policy"
$ echo $var1 | awk '{sub(/.[^=]*=/,"")}1'
set policy
$ echo $var1 | cut -d= -f2-
set policy
$ echo $var1 | ruby -e 'puts gets.split(/=/,2)[1]'
set policy
$ echo $var1 | sed 's/.[^=]*=//'
set policy

其他不依赖于外壳的方式

$ var1="policy=set policy"
$ echo $var1 | awk '{sub(/.[^=]*=/,"")}1'
set policy
$ echo $var1 | cut -d= -f2-
set policy
$ echo $var1 | ruby -e 'puts gets.split(/=/,2)[1]'
set policy
$ echo $var1 | sed 's/.[^=]*=//'
set policy

请接受更多答案。另外,请注意,在大多数shell中,赋值运算符前后不能有空格。“过于本地化”的密切投票者需要离开自己的shell,进入真实世界。这是一个关于shell编程的问题,完全是关于SO的主题。您编写的是哪个shell?请接受更多答案。另外,请注意,在大多数shell中,赋值运算符前后不能有空格。“过于本地化”的密切投票者需要离开自己的shell,进入真实世界。这是一个关于shell编程的问题,完全是关于SO的主题。您编写的是哪个shell?这是有效的POSIX shell代码。(*csh不是POSIX shell实现。)这是有效的POSIX shell代码。(*csh不是POSIX shell实现。)