1

在我的用例中,我想将 的值更改为IFS已知的分隔符 ( -)。我尝试了以下方法:

OLDIFS=$IFS
IFS='-'
for x in $*
do
    echo $x
done
IFS=$OLDIFS

当使用例如-a b -c d作为输入字符串时,我希望输出是

a b
c d

但是,我得到的是

a
b
c
d

我在AIX

4

2 回答 2

1

awk这是使用并避免所有操作获取此输出的一种方法IFS

s='-a b -c d'
echo "$s" | awk -F ' *- *' '{print $2 RS $3}'
a b
c d
于 2014-04-29T13:06:06.590 回答
1

我试过你的代码,我得到了

a b
c d

尝试这个

$ cat >a <<.
#!/bin/sh
OLDIFS=$IFS
IFS='-'
for x in $*
do
    echo $x
done
IFS=$OLDIFS
.
$ chmod +x a
$ ./a "-a b -c d"

a b
c d
$
于 2014-04-29T10:52:42.963 回答