我试图从单引号开始剪切下面的字符串:
name1=O'Reilly
所以离开:
name2=Reilly
使用以下命令从命令行轻松实现:
echo $name | cut -d\' -f
echo $name | awk -F\' '{print $2}'
但是,当我从脚本运行这些命令时,字符串保持不变。我一直在研究使用单引号作为分隔符但无法找到任何内容的问题。有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
这不会改变变量扩展的字符串,只输出字符串操作的结果。
如果要为变量name
创建新引用,请使用命令替换将cut
/ awk
操作的结果保存为变量name
:
% name="O'Reilly"
% echo "$name" | awk -F\' '{print $2}'
Reilly
% name=$(echo "$name" | awk -F\' '{print $2}')
% echo "$name"
Reilly
另一方面,如果要将输入声明为一个(name1
),并将输出另存为另一个变量(name2
):
% name1="O'Reilly"
% name2=$(echo "$name1" | awk -F\' '{print $2}')
% echo "$name2"
Reilly
这可能更容易使用参数扩展:
$ name="O'Reilly"
$ echo "${name#*\'}"
Reilly
$ name="${name#*\'}"
$ echo "$name"
Reilly