Bash 在UNIX中使用awk查找模式中的文本

Bash 在UNIX中使用awk查找模式中的文本,bash,shell,unix,awk,pattern-matching,Bash,Shell,Unix,Awk,Pattern Matching,我有许多文本文件,其中第一行的格式如下 /*tablename-Employee*/ /*tablename-Department*/ /*tablename-Orders*/ 我想使用awk从每个单独的文件中获取员工、部门和订单 我尝试了这个,但没有看到任何输出 awk '/^[\/]*tablename: / {print $1}' employee_file.sql awk '/^[\/]*tablename: / {print $1}' department_file.sql

我有许多文本文件,其中第一行的格式如下

/*tablename-Employee*/ 
/*tablename-Department*/
/*tablename-Orders*/
我想使用awk从每个单独的文件中获取员工、部门和订单

我尝试了这个,但没有看到任何输出

 awk '/^[\/]*tablename: / {print $1}' employee_file.sql
 awk '/^[\/]*tablename: / {print $1}' department_file.sql
 awk '/^[\/]*tablename: / {print $1}' order_file.sql
单个命令的预期输出

Employee
Department
Orders

您可以使用
awk

awk -F '[-*]' 'NR == 1{print $3}' file1
Employee

awk -F '[-*]' 'NR == 1{print $3}' file2
Department

awk -F '[-*]' 'NR == 1{print $3}' file3
Orders

我有3个不同的文件,其中包含第一行的模式
/*tablename-
只需在后面添加exit即可print@anubhavaawk逻辑工作正常,但在输出下面有很多空白。请参阅更新,
NR==1
将使其仅在第1行运行。为了提高效率,在
打印后添加
exit
,如@NahuelFouilleul建议的那样,而不是添加
NR==1