arrays - Bash 编程

标签 arrays bash variables

我整个早上都在尝试思考如何做我想做的事情,但是......我开始感到绝望!

我的 .txt 文件中有一个行和列的数组。所以我想创建一个脚本来为我提供以下信息:

如果我将其输入到终端 (script.sh 1 2 3),它应该会显示 .txt 文件中的第 1 至第 3 列。

如果我将其输入到终端 (script.sh),它应该为我提供第 5 列到最后一列。

如果我在终端中输入它 (script.sh 1 2 3 -ginsulin),它应该会显示包含单词“insulin”的行的第 1 到第 3 列。这里的 -g 表示“基因”,因此目的是寻找该基因。

我已经编写了一个代码,如果我不引入任何变量,它就会为我提供我想要的列或所有列,但我无法继续使用 -g 和基因变量...你有吗想法?

这是我的代码:

#!/bin/bash

var="$(echo $@ | tr " " ",")"

if [ $# = 0 ]; then
awk '{for (x=5; x<=NF; x++) {printf "%s ", $x } printf "\n" }' affy.txt
else
cat affy.txt | cut -d" " -f$var
fi

谢谢!

最佳答案

脚本.sh:

#!/bin/bash
columns=""
word="."
for arg; do
    if [[ $arg == "-g" ]]; then
        shift
        word=$1
    else
        columns+="$1,"
    fi
    shift
done
if [[ $columns ]]; then
    columns=${columns%,}
else
    columns="5-"
fi
grep $word affy.txt | cut -d " " -f "$columns"

关于arrays - Bash 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19404748/

相关文章:

Linux:从 XML 文件中删除具有从第 2 次出现开始的匹配字符串的行的命令

linux - Bash 脚本变量

php - 从 MySQL 查询构建多维 PHP 数组

mysql - MySQL 中的 SHOW COLUMNS 别名

php - 将 PHP 变量转换为 bash 变量

C传递终端命令并打印答案

JavaScript - 如何在 If/Else 语句中提取字符串

c - C 函数中的动态结构数组

arrays - Go:数组的数组, slice 的数组,数组的 slice 和 slice 的 slice

php - 我可以使用像 array_map 这样的数组函数设置数组的键吗