我在文件中有以下行。请注意,我在第二行中有意将额外的哈希保持在2到0之间。文件名:test.txt
Name#|#Age#|#Dept
AC#|#2#0#|#Science
BC#|#22#|#Commerce
我正在使用AWK在Dept列中获取数据
awk -F "#|#" -v c="Dept" 'NR==1{for (i=1; i<=NF; i++) if ($i==c){p=i; break}; next} {print $p}' "test.txt" >> result.txt
结果.txt向我展示以下
|
Commerce
第一行是管道,因为如果第一行中的额外#。任何人都可以在此方面提供帮助
当前定界符集的含义是: match # or #
。在这种情况下,管道|
字符充当OR
语句;而是尝试使用:
awk -F '#[|]#' ...
将|
放入字符类[ ... ]
awk
将其字面上的匹配。
如果您想在内容中提取部门,这是您可以选择的好选择,
awk -F'#' 'NR>1{print $NF}' test.txt
输出:
Science
Commerce