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
。