2

输入文件:

2012/01/18 11:24 GMT+00:00   adm   Add  "/david/admin"  "/apps/data/unix/archives/osn/admin"    ""

我做了

awk -F'"' print {$2"}' /file/path

我得到了

/david/admin

awk -F'"' print {$4"}

得到了我

/apps/data/unix/archives/osn/admin

是否可以将这些组合起来并将它们存储在单个变量中?

例子:

name=/david/admin
path=/apps/data/unix/archives/osn/admin 
4

2 回答 2

4

如果你想将它们存储在 awk 变量中,你基本上就完成了:

$ awk -F'"' '{ name=$2;path=$4 } { print name }' <<< '2012/01/18 11:24 GMT+00:00 adm Add "/david/admin" "/apps/data/unix/archives/osn/admin" ""'
/david/admin

如果要将它们存储在 shell 变量中,请使用read而不是 awk。

$ IFS='"' read _ name _ path _ <<< '2012/01/18 11:24 GMT+00:00 adm Add "/david/admin" "/apps
/data/unix/archives/osn/admin" ""'
$ echo $name
/david/admin
$ echo $path
/apps/data/unix/archives/osn/admin
于 2013-09-18T03:22:06.473 回答
0

如上所述,您的 awk 中有很多错字,他们没有给出您告诉他们正在给予的内容。错误awk -F'"' print {$4"}正确awk -F'"' '{print $4}'。这是我将如何存储到 shell 变量。

name=$(awk -F\" '{print $2}' file)
path=$(awk -F\" '{print $4}' file)
于 2013-09-18T09:19:24.467 回答