输入文件:
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
答案 0 :(得分: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
答案 1 :(得分:0)
你的awk中有很多拼写错误,如上所述,他们没有给出你告诉他们的东西。
错误的awk -F'"' print {$4"}
更正了awk -F'"' '{print $4}'
。
这是我将如何存储到shell变量。
name=$(awk -F\" '{print $2}' file)
path=$(awk -F\" '{print $4}' file)