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