这是我第一次涉足脚本。
我正在尝试编写一个shell脚本来读取stdin,然后只要有一个“:”将它分成2个变量并添加一个“!”在“:”之后。
我知道我需要利用“读取”实用程序将单词拆分成单独的变量,但除此之外我不太确定。
我可以在几分钟内用Java,C ++或Python完成这项工作。
感谢您的帮助,我很感激。
答案 0 :(得分:1)
您似乎在询问如何在Bash中实现Java / C ++ / Python模式。由于Bash与这些语言完全不同,所以你得到的答案很可能是笨拙和非惯用的。
考虑解释你拥有的和你想要的东西。
如果你有
foobar
foo:bar
foo:bar:baz
你想要
foobar
foo:!bar
foo:!bar:baz
然后你可以像你描述的那样去Java / etc路线:阅读并检查:
如果是这样,将它拆分并添加!
,然后写出来:
# Bad way
while IFS= read -r line
do
if [[ $line == *:* ]]
then
first=${line%%:*}
second=${line#*:}
echo "$first:!$second"
else
echo "$line"
fi
done
但是,由于Bash不是Java / etc,我们可以使用不同的工具和技术,而且可以做到:
sed -e 's/:/:!/'