如何从Linux shell中的文件中的二维数组中select一个元素

我是新的shell脚本,我需要的是从包含2d数组的文件中读取。 假设有一个名为test.dat的文件,其中包含以下值:

- Paris London Lisbon - Manchester Nurnberg Istanbul - Stockholm Kopenhag Berlin 

在Linux bash脚本中从这张表中select一个元素最简单的方法是什么? 例如,用户input-r 2 -c 2 test.dat,这意味着select在行[2]和列[2](Nurnberg)的元素。

我已经看到了读取命令和谷歌search,但大部分的例子是关于1D数组。

这个看起来很熟悉,但是完全不能理解。

Solutions Collecting From Web of "如何从Linux shell中的文件中的二维数组中select一个元素"

awk非常适合这个:

 $ awk 'NR==row{print $col}' row=2 col=2 file Nurnberg 
  • NR==row{}表示:在记录号码row ,做{}记录正常的号码是行号。
  • {print $col}表示:打印字段号。
  • row=2 col=2给两个参数awk

更新

还有一个小问题:如何将其转换为sh文件,以便当我输入-r 2 -c 2 test.dat进入提示时,我将运行脚本以便从文件中读取并回显输出? – iso_9001_。

例如:

 #!/bin/bash file=$1 row=$2 col=$3 awk 'NR==row{print $col}' row=$row col=$col $file 

你执行像:

 ./script a 3 2 Kopenhag