我在txt文件中有一个看起来像这样的列表。
date
我想要一个脚本,该脚本为我提供以下输出:
汤姆·乔纳斯·菲利普·库古
我一直在寻找这样的东西:
let uploadedFiles = await sails.upload(inputs.image, {/* custom adapter config */});
但是我还没到那儿,根本没有输出。
答案 0 :(得分:3)
cat <<EOF |
10.9.0.18,tom,34.0.1.2:44395,Thu Apr 18 07:14:20 2019
10.9.0.10,jonas,84.32.45.2:44016,Thu Apr 18 07:16:06 2019
10.9.0.6,philip,23.56.222.3:55202,Thu Apr 18 07:16:06 2019
10.9.0.26,coolguy,12.34.56.7:53316,Thu Apr 18 07:16:06 2019
EOF
cut -d, -f2 | tr '\n' ' '
答案 1 :(得分:1)
您没有得到输出,因为grep
不返回任何内容(您不需要perl正则表达式)。
您还需要选择第二个字段:
grep '^10\.9\.0\.' data.txt | cut -d, -f
答案 2 :(得分:1)
如果选择awk
,则可以尝试:
awk -F, '{printf "%s ", $2} END {print ""}' file.txt
{printf "%s ", $2
禁止使用默认的新行,而是使用空格。
END {print ""}
将在完成后添加新行
答案 3 :(得分:0)
如果要多行输出,这是正确的答案:
$ awk -F, '/^10\.9\.0/{print $2}' file
tom
jonas
philip
coolguy
或单身:
$ awk -F, '/^10\.9\.0/{o=o s $2; s=OFS} END{print o}' file
tom jonas philip coolguy
您需要对.
进行转义,因为它们代表了正则表达式中的任何字符,并且您无需在正则表达式的末尾添加.*
,因为它会字面匹配“还是什么都没有。”