我正在尝试获取
中引用的密码值双引号和最后一个字段的用户名值,当我 尝试" 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
答案 0 :(得分:1)
$ awk -F'[" ]+' -v OFS='\t' '{print $2, $6}' file
Aj12*$ appkll
Aj12*$ horfon
Agik14# attino
或跳过空白行并假设末尾有列:
awk -F'[" ]+' 'NF{print $2, $6}' file | column -t
答案 1 :(得分:0)
awk '{gsub(/"/,"",$2);print $2 "\t" $6}' file
如果您的密码是输入文件的第2列,其中的shellter上面提到的内容应该不会包含"
(例如Ag"kFR#
)。
如果密码可以包含"
,您可以使用substr
删除第2列开头和结尾的引号,如下所示:
awk '{print substr($2,2,length($2)-2) "\t" $6}' file