我在UNIX上有很多文件,希望在与指定模式关联的文件中获取数字。
大部分文件在文件中都有一个独特的模式,如下所示
some text abc
some text abc
some text abc
(3 rows)
我想使用awk仅打印数字3
。
数字可能因文件而异,也可能是35644或任何数值。
我想使用awk而不是sed或grep找到该号码,因为HP unix不支持高级sed / grep功能。
答案 0 :(得分:0)
以下是否适用于您?
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
let item = dataSource[indexPath]
if item.isExpanded {
return 144
}
return 44
}
如果sed -e 's/(\([0-9][0-9]*\) rows)/\1/;t;d'
(N rows)
的替换网络成功,N
会转到脚本末尾,否则t
会删除该行(即所有行)将不包含表达式。)
答案 1 :(得分:0)
由于您不想(或者您不能)使用简单的 sed
方法,所以 awk
< / strong>解决方案:
示例输入文件:
$ head file[123]
==> file1 <==
some text abc
some text abc
some text abc
(3 rows)
==> file2 <==
some text abc
some text abc
some text abc
some text abc
some text abc
(5 rows)
==> file3 <==
some text abc
some text abc
(2 rows)
$ for f in file[123]; do awk 'END{ print FILENAME, substr($1, 2) }' "$f"; done
file1 3
file2 5
file3 2
sed
解决方案(在我的变体中)看起来像:
for f in file[123]; do echo -n "$f "; sed -n '$ s/[() ]\|rows//gp' "$f"; done
答案 2 :(得分:0)
也许这个awk
awk -v RS='(' 'END{print $1}' infile