我需要从包含一些字段的变量中找到最后一列。我需要写一些类似的东西:
if [ #the last column = "R" ];
then
value=`echo "'$value'"`
fi
有可能吗?
答案 0 :(得分:9)
使用awk
,您可以尝试:
awk '$NF=="R"' <<< "$var"
$ var="this is a var with last as R"
$ awk '$NF=="R"' <<< "$var"
this is a var with last as R
$ var1="This should not be printed"
$ awk '$NF=="R"' <<< "$var1"
$
答案 1 :(得分:3)
条件可以是:
if [[ $value == *' 'R ]]
then
echo $value
fi
无需使用外语,例如awk
。
答案 2 :(得分:2)
使用=~
二元运算符:
$ var="Some arbitrary string ending in R"
$ unset value
$ [[ "$var" =~ $'R$' ]] && value=${var}
$ echo $value
Some arbitrary string ending in R
$ var="Some arbitrary string ending in Q"
$ unset value
$ [[ "$var" =~ $'R$' ]] && value=${var}
$ echo $value
答案 3 :(得分:1)
假设按空格分隔的更多通用代码:
case $var in
(*\ R) printf "%s\n" "$var"
esac
或者:
if [ "${var##* }" = R ]; then
printf "%s\n" "$var"
fi