我有一个分隔的平面文件,我想找到给定标题的用户的列位置。问题是我的一些标题中有空格,当我进行比较时,它会将两个单词的字符串视为两个参数。如果分隔的字段中没有空格,我的代码将起作用。
#!/bin/bash
# Unique Values
#Example use: my_script file.txt '|' 'SOME VARIABLE'
DELIM=$2
VAR=$3
HEADERS=$(sed -n 1p $1)
COUNTER=1
while [ $VAR != $(echo $HEADERS | cut -d $DELIM -f $COUNTER) ]
do
COUNTER=$((COUNTER+1))
done
echo $COUNTER
答案 0 :(得分:1)
将变量放在引号
中while [ "$VAR" != "$(echo $HEADERS | cut -d $DELIM -f $COUNTER)" ]
或使用[[而不是[
while [[ $VAR != $(echo $HEADERS | cut -d $DELIM -f $COUNTER) ]]