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
です。
すべての操作を使用してこの出力を取得しawk
、回避する1 つの方法を次に示します。IFS
s='-a b -c d'
echo "$s" | awk -F ' *- *' '{print $2 RS $3}'
a b
c d
私はあなたのコードを試してみました
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
$