很好的一天,
这有点长,我希望能得到任何人的帮助,谁能支持我在这个简单的问题(对其他人),但要我几乎永远弄明白。
我有这个文件(EOL.txt),它包含以下示例列表:

   35 - 5976

   36 - 5976C0

   53 - 5976C2

   64 - 5976D0

   69 - 43593

   72 - 43593C0

Im使用以下命令提取最左边的图形,因为这与另一个脚本的例程编号相对应:
grep 5976C2 EOL.txt | head -n1 | cut -d- -f1

在获取该数字后,我将在另一个脚本(N.csh语法如下)上输入该数字和其他数据,该脚本将执行另一个脚本(Test.csh):
$./N.csh 53 XXXX.XX "01 02 03"

N.csh --> printf "$1\n$2\n$3\nYYYY\n1\nN\n" | /export/home/Script/Test.csh

我现在要做的是将grep命令合并到N.csh中,这样我就不必单独执行了。应该是这样的:
$./N.csh 5976C2 XXXX.XX "01 02 03"

我试过下面的命令,但它不起作用。
grep $1 EOL.txt | head -n1 | cut -d- -f1 >> A ; set B=`cat A` ; printf %s "$B\n$2\n$3\n82869\n1\nN\n"

我是新来的,任何帮助都会非常感谢。
提前多谢了。
迈克

最佳答案

可以在文件N.csh中使用以下命令:

set mynumber = `grep $1 EOL.txt | head -n1 | cut -d- -f1`
printf "$mynumber\n$2\n$3\n...

然后像这样调用N.csh
/编号csh 5976C2 XX XX.XX“01 02 03”
注意,在set mynumber =之后的第一行中,有一个“backtick”-一个反向的单引号。shell执行由两个反勾号分隔的命令,获取输出,并将其放回原始内容的位置,因此第一行变成set mynumber = 53

关于linux - 使用printf通过grep显示提取的字符串并在脚本中用作用户输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41918153/

10-11 21:02