【发布时间】:2016-02-19 00:54:51
【问题描述】:
我正在尝试获取其中引用的密码值
双引号和最后一个字段的用户名值,当我在 尝试 "sed RRp '/^\s*$/d' | awk -F'"' '{print $2, $NF}'" 它需要 第二个字段正确,其余字段取所有输出。
文件内容...
# cat RRp
echo "Aj12*$" | passwd --stdin appkll
echo "Aj12*$" | passwd --stdin horfon
echo "Agik14#" | passwd --stdin attino
虽然我在下面实现了它,但我使用了两次 awk,我们可以瘦身吗 它只有一次..
# sed '/^$/d' RRp | awk -F'"' '{print $2, $NF}'| awk '{print $1,$5}' | column -t
Aj12*$ appkll
AgkFR1! horfon
Agik14# attino
预期输出
Aj12*$ appkll
AgkFR1! horfon
Agik14# attino
【问题讨论】:
-
@Ed - 我已经编辑了包含文件内容和预期输出的帖子
-
awk '{gsub(/"/,"",$2);print $2 "\t" $6}' file应该接近您指定的值。祝你好运。 -
@Karn - 您在第 2 列中的密码可以包含
"吗?例如。 Ag"kFR# ? -
@vk239 - 是的,它包含。
-
@shellter - 提供 gsub 的 awk 不能完全正常工作,因为它采用“|” (管道)在输出与字段 2 之间。
标签: awk