【发布时间】:2018-07-03 08:27:10
【问题描述】:
我有一个包含以下信息的源文件。
WABEL8499IPM101
WABEL8499IPM102
WABEL8499IPM103
WABEL8499IPM104
WABEL8499IPM105
WABEL8499IPM106
WABEL8499IPM107
WABEL8499IPM108
我需要能够找到序列中最大的名称,然后使用序列中的下一个逻辑名称创建一个新变量。如有必要,我需要能够创建多个。例如:
使用 grep 搜索显示所有上述结果的 WABEL8499IPM 文件。我需要找到 WABEL8499IPM108,因为它是序列中最大的,然后创建一个新变量(多少取决于用户输入的内容),其值为 WABEL8499IPM109。如果用户输入的数量为 2,那么我需要 109 和 110。我的目标是构建一个 bash 脚本来输入基本名称(没有最后 3 位数字),找到序列中最大的,然后输出到日志文件序列中的下一个名称,无论用户需要多少次。
我不确定从哪里开始。我可以使用 grep 找到所有内容,但很难仅找到最大值/序列。用户将只输入基本名称,因为他们不知道最后 3 位数字。目前我没有任何有效的代码。
SRCFILE="~/Desktop/deviceinfo.csv"
LOGDIR="~/Desktop/"
LOGFILE="$LOGDIR/DeviceNames.csv"
echo -e "\n"
echo "What is the base device name?"
read deviceName
echo "How many device names do you need?"
read quantityName
lines=$(grep -c "$deviceName" $SRCFILE)
echo -e "\n"
echo "There are $lines results."
deviceResults=$(grep -F "$deviceName" $SRCFILE)
echo -e "\n"
echo Device Name\'s Currently Enrolled:
echo "$deviceResults"
echo -e "\n"
echo "Your output file has been created."
CODE FOR CREATING OUTPUT FILE HERE
echo "$deviceName1" >> "$LOGFILE"
echo "$deviceName2" >> "$LOGFILE"
echo "$deviceName3" >> "$LOGFILE"
这种方法是否可以使用参考文件进行输入?例如,如果我必须研究并创建具有不同数量的多个名称,我们是否可以为此使用输入参考文件,这样我们就不必单独键入它们并多次运行脚本?
【问题讨论】:
-
欢迎来到 SO,很好地尝试解释您的问题,您能否让我们更清楚地知道您正在尝试什么,例如输入文件样本(如果存在)和代码中的预期输出样本TAGS,以便我们也能全面了解您的问题,干杯。
-
我已经添加了一个示例源和输出文件以及我目前拥有的一些代码。现在我没有代码来创建序列中的下一个名称并将它们添加到要打印到输出文件的变量中。输出的数量应取决于 $quantityName。
-
请不要提供不鼓励的链接或图片或附件,请在代码标签中粘贴一些示例以进行输入和输出,保持简单并让我们知道。