作为此脚本的一部分,我需要能够检查给定的第一个参数是否与文件的第一个单词匹配。如果是,则退出并显示错误消息;如果没有,请将参数附加到文件中。我了解如何编写if语句,但不了解如何grep在脚本中使用。我知道这grep看起来像这样
grep ^$1 schemas.txt
Run Code Online (Sandbox Code Playgroud)
我觉得这应该比我做的要容易得多。
我在声明中收到错误“参数太多” if。我摆脱了之间的空间grep -q,然后得到了一个预期的错误二元运算符。
if [ grep -q ^$1 schemas.txt ]
then
echo "Schema already exists. Please try again"
exit 1
else
echo "$@" >> schemas.txt
fi
Run Code Online (Sandbox Code Playgroud) 我需要遍历未知大小的整个文件,并删除给定单词(作为参数 1 传入)出现在指定列中的任何行。此外,我需要跟踪删除了多少行。我假设这是 awk 的工作,但我遇到了很多麻烦。我尝试过使用 awk match,但除了其他一些语法问题之外,我无法将参数翻译成一个词。
示例(文件.txt):
Katie 1234 4567 blue
Ben 3456 2345 purple
Alex 7896 6789 blue
$ script.sh blue 4
Run Code Online (Sandbox Code Playgroud)
将文件编辑为:
Ben 3456 2345 purple
Run Code Online (Sandbox Code Playgroud)
和输出: 2 lines removed
我更感兴趣的是了解我在做什么,而不仅仅是获取代码。