我整个早上都在尝试思考如何做我想做的事情,但是......我开始感到绝望!
我的 .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/