从txt提取文本

时间:2019-02-05 12:14:15

标签: unix grep sid

我的问题是要从/ etc / passwd中与特定模式匹配的行中提取文本

每行只需要选择“:*”之前的文本

我要用逗号分隔输出。

这是一个例子:

狗:* dsfgfdh

cat:* bsdfsdf

收件人:

狗,猫

我已经尝试过类似的事情,显然是行不通的

cat / etc / passwd | grep'a patern'

对grep有更多了解的人想要帮助吗?

1 个答案:

答案 0 :(得分:0)

快捷与肮脏:

awk -F':' -v ORS=", " '$0=$1' /etc/passwd

它是“脏的”,因为结果末尾带有逗号,。末尾也没有换行符。

更好的版本:

awk -F':' '{printf "%s%s", NR==1?"":", ", $1}END{print ""}' /etc/passwd