linux - 如何在 shell 脚本中将多个 shell 变量传递给 awk?

标签 linux shell awk

我已经编写了一个 shell 脚本来获取任何列。 脚本是:

#!/bin/sh
awk '{print $c}' c=${1:-1}

这样我就可以称它为

ls -l | column 2

但是我如何为多个列实现它呢? 说吧,我想要这样的东西:

ls -l | column 2 3

最佳答案

在这种情况下,我根本不会使用 awk:

columns() { tr -s '[:blank:]' ' ' | cut -d ' ' -f "$@"; }

这使用 tr 将所有空白序列压缩到一个空格,然后 cut 提取您感兴趣的字段。

ls -l | columns 1,5,9-

注意,你shouldn't parse the output of ls .

关于linux - 如何在 shell 脚本中将多个 shell 变量传递给 awk?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17882590/

相关文章:

linux - Shell 脚本 - 不要等待读取

c++ - Travis-Ci 安装并运行 CxxTest

c - 如何使用shell脚本比较两个文件,一个具有不同的字段,另一个是c文件?

regex - 将 CPU 温度存储在变量中

linux - 如果同一行有 2 个字段匹配,则从同一列减去 2 个值

linux - Docker 在构建时无法找到包 (wkhtmltopdf)

android - adb shell setprop log.tag.SOMETAG VERBOSE,如何获取SOMETAG?

python - 如何从 Python 执行批处理文件,以便它可以改变调用进程的环境?

linux - 列出具有数字名称的文件

linux - 删除 CSV 文件中多余的逗号和双引号并提取特定列