sed - 单独的引号和参数

时间:2016-07-28 16:05:12

标签: sed

因此,我试图获取一个脚本,我正在使用文本文件中定义的不同参数在不同目录中运行另一个脚本。 这是我的代码的一部分:

for bline in $(cat "$file"); do
  lindir=$()
  linarg=$()
  echo "dir: ${lindir}"
  echo "arg: ${linarg}"
done

我们说我的文件中有一行说明了这一点:

"./puppies" -c=1 -u=0 -b=1

如何为./puppies获取lindir的输出,为-c=1 -u=0 -b=1获得linarg的输出?

1 个答案:

答案 0 :(得分:1)

lindir="$( cut -d ' ' -f 1  <<<"$bline" )"
linarg="$( cut -d ' ' -f 2- <<<"$bline" )"

那是

while read -r bline; do
  lindir="$( cut -d ' ' -f 1  <<<"$bline" )"
  linarg="$( cut -d ' ' -f 2- <<<"$bline" )"

  printf "dir: %s\n" "$lindir"
  printf "arg: %s\n" "$linarg"
done <"$file"

如果你在一个不理解“here-strings”的shell中:

lindir="$( printf "%s" "$bline" | cut -d ' ' -f 1  )"
linarg="$( printf "%s" "$bline" | cut -d ' ' -f 2- )"