[英]AWK to filter output
我對此感到困惑我有以下目錄結構
ls -d */*
keyspace1/table2 system/peers system/sstable_activity system_schema/columns
system/IndexInfo system/prepared_statements system/transferred_ranges system_schema/dropped_columns
system/available_ranges system/range_xfers system/views_builds_in_progress system_schema/functions
system/batches system/schema_aggregates system_auth/resource_role_permissons_index system_schema/indexes
system/batchlog system/schema_columnfamilies system_auth/role_members system_schema/keyspaces
system/built_views system/schema_columns system_auth/role_permissions system_schema/tables
system/compaction_history system/schema_functions system_auth/roles system_schema/triggers
system/hints system/schema_keyspaces system_distributed/parent_repair_history system_schema/types
system/local system/schema_triggers system_distributed/repair_history system_schema/views
system/paxos system/schema_usertypes system_distributed/view_build_status system_traces/events
system/peer_events system/size_estimates system_schema/aggregates system_traces/sessions
我想排除所有系統文件夾,但必須保留 system_schema 和其他目錄! 我已經嘗試使用 AWK 來做到這一點,但這並不像我想要的那樣工作
ls -d */* | awk '{for(i=1;i<=NF;i++) { if(($i=="system_schema") || ($i!~"system")) {print $i}}}'
keyspace1/table2
這會打印其他目錄,這是可以的,但是當我的 system_schema 文件夾? 或者我如何使用其他 UNIX 工具來做到這一點? 謝謝
使用示例grep
您可以這樣做:
ls -d */* | grep -v "^system/"
或者,如果您想要所有以system
開頭但不是system/
記錄,您可以使用以下內容:
ls -d */* | grep "^system"|grep -v "^system/"
如果您只需要 system_schema 和 keyspace1,您可以使用以下代碼:
ls -d */* | egrep "system_schema|keyspace"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.