如何使用shell脚本

时间:2016-08-01 09:09:55

标签: shell unix sed scripting

如何更新我可以替换用户名的shell脚本" u1"来自.txt文件中用户输入的任何值

'username' => "u1"

以下是现有代码: -

#!bin/bash
echo "\nEnter Username to replace: "
read name

sed -i -e s/u1/"$name"/g /var/1.txt

2 个答案:

答案 0 :(得分:0)

尝试'$ name'而不是“$ name”

最好的选择是使用sed -i -r

 sed -i -r 's/u1/'$name'/g'  /var/1.txt

您可以尝试的另一个选项是将其保存到临时文件并将其移回

示例:

 sed 's/u1/'$name'/g' /var/1.txt > /tmp/temp

 mv /tmp/temp /var/1.txt

答案 1 :(得分:0)

使用sed,我们可以将一个语句拆分为两个 - 并将第二部分替换为必需的变量[here,$ name] - 而不是使用u1对脚本进行硬编码。

sed -i "s#\(.*'username' =>\)\( .*\)#\1 "\"$name\""#" /var/1.txt

使用awk可以实现相同的结果,如下所示:

awk -v name="$name" '/username/{gsub($3,"\""name"\"")};1' /var/1.txt