让我们说我有这样的文字
Hello, 12345
This is going to be fun
ABC:172-1345,
172-1323
There is more string here.
Hello, 34567
This is not going to be fun
ABC:172-2345
There is more string here
输出应该是
12345 ABC:172-1345
34567 ABC:172-2345
我们可以在awk
中实现这一目标吗?
我们还必须考虑最后一个Hello,因为它不会有另一个Hello来获得结束解析字符串。
答案 0 :(得分:0)
最简单:
awk -v RS=Hello, 'NR != 1 { print $1, $NF }'
这会将文件拆分为由Hello,
分隔的记录,并打印每条记录中的第一个和最后一个标记。 NR == 1
被排除在外,因为它是第一个Hello,
之前的空位。
请注意,多字符RS
并不严格符合POSIX,尽管最常见的awks(mawk和gawk)接受它。
答案 1 :(得分:0)
$ awk -v RS= '{print $2,$NF}' file
12345 ABC:172-1345
34567 ABC:172-2345