在awk和echo之后删除多余的空间

输入文件看起来像

ab 1 2
xy 3 5

当我在循环中使用以下行时

NAME=`echo $line | awk '{print $1}'`
echo $NAME "-"

输出是

ab -
xy -

我不知道单词和“-”之间的“空格”是由awk还是echo引起的。我要删除它。我想确保$ NAME是“ ab”或“ xy”,而不是“ ab”或“ xy”。

我怎样才能做到这一点?

评论
噬魂
噬魂

这是回声:

$ NAME="foo"
$ echo $NAME $NAME
foo foo
$ echo $NAME$NAME
foofoo

没有空间:

$ echo ${NAME}BAR
fooBAR
点赞
评论
kaut
kaut

echo outputs its arguments separated by spaces. You can modify the echo statement to:

echo "${NAME}-"

From bash(1):

 echo [-neE] [arg ...]
          Output the args, separated by spaces, followed by a newline. [...]

You could use printf too:

printf "%s-\n" "${NAME}"
点赞
评论