我有一个包含文件路径的文件。例如,看起来像这样:
bq
我有一个变量bq update --time_partitioning_type=DAY --norequire_partition_filter \
<dataset_name>.<table name>
... (perform the export)
bq update --time_partitioning_type=DAY --require_partition_filter \
<dataset_name>.<table name>
... (resume querying the table)
我想只选择行,/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1
/home/smth/a/b/file1
字符恰好出现F_COUNT=4
次。
它会返回:
'/'
我尝试使用正则表达式$F_COUNT
,特别是我尝试/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1
,但这不起作用。我怎么能这样做?
答案 0 :(得分:5)
您可以使用awk
来计算字段:
F_COUNT=4
awk -F/ -v num="$F_COUNT" 'NF == num+1' file
/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1
答案 1 :(得分:2)
根据要求使用grep:
F_COUNT=4
grep -E "^(/[^/]+){$F_COUNT}$" file
/home/smth/a/file1
/home/smth/a/file2
/home/smth/b/file1