如何从 Linux shell 文件中的 2d 数组中选择元素



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

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

在 linux bash 脚本中从此表中选择元素的最简单方法是什么?例如,用户输入 -r 2 -c 2 测试.dat这意味着在行 [2] 和列 [2] (纽伦堡)中选择元素。

我已经看过读取命令并在谷歌上搜索过,但大多数示例都是关于 1d 数组的。

这个看起来很熟悉,但无法完全理解。

awk非常适合

$ awk 'NR==row{print $col}' row=2 col=2 file
Nurnberg
  • NR==row{}的意思是:在记录数row上,做{}记录数通常是行数。
  • {print $col}的意思是:打印字段编号col
  • row=2 col=2将这两个参数都提供给awk

更新

还有一个小问题:我怎样才能把它转换成一个sh文件,所以 当我输入 -r 2 -c 2 测试时.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

相关内容

  • 没有找到相关文章

最新更新