UNIX从命令输出比较字符串和空格

时间:2015-09-04 16:25:49

标签: shell unix scripting

我有一个分隔的平面文件,我想找到给定标题的用户的列位置。问题是我的一些标题中有空格,当我进行比较时,它会将两个单词的字符串视为两个参数。如果分隔的字段中没有空格,我的代码将起作用。

#!/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

1 个答案:

答案 0 :(得分:1)

将变量放在引号

while [ "$VAR" != "$(echo $HEADERS | cut -d $DELIM -f $COUNTER)" ]

或使用[[而不是[

while [[ $VAR != $(echo $HEADERS | cut -d $DELIM -f $COUNTER) ]]