使用awk过滤时如何保留文件的header
How to keep the header of the file when filtering using awk
我有一个看起来像这样带有 header 的文件。虽然有 26 列,但我只显示前 8 列。
id Id Study Site CancerType Sex Country unexpected_duplicates
468768 1032 Response Karlburg VN Breast Female Germany
468769 1405 Response Santiago Prostate Male Spain
我想使用此命令按“乳房”过滤癌症类型(第 5 列),该命令运行良好:
awk '( == "Breast")' PCA.covar > PCA.covar1
唯一的问题是我的 header 没有打印出来,输出中缺少第一行。
所以我将命令修改为:
awk 'NR==1; NR > 1 ( == "Breast")' PCA.covar > PCA.covar1
而且我看到虽然 header 在那里,但它没有被 Breast 过滤:
id Id Study Site CancerType Sex Country unexpected_duplicates
468768 1032 Response Karlburg VN Breast Female Germany
468769 1405 Response Santiago Prostate Male Spain
68772 RQ56001-9 Response Maastricht Prostate Male Netherlands
应该这样做:
awk 'NR==1 || == "Breast"{print}' PCA.covar > PCA.covar1
我有一个看起来像这样带有 header 的文件。虽然有 26 列,但我只显示前 8 列。
id Id Study Site CancerType Sex Country unexpected_duplicates
468768 1032 Response Karlburg VN Breast Female Germany
468769 1405 Response Santiago Prostate Male Spain
我想使用此命令按“乳房”过滤癌症类型(第 5 列),该命令运行良好:
awk '( == "Breast")' PCA.covar > PCA.covar1
唯一的问题是我的 header 没有打印出来,输出中缺少第一行。
所以我将命令修改为:
awk 'NR==1; NR > 1 ( == "Breast")' PCA.covar > PCA.covar1
而且我看到虽然 header 在那里,但它没有被 Breast 过滤:
id Id Study Site CancerType Sex Country unexpected_duplicates
468768 1032 Response Karlburg VN Breast Female Germany
468769 1405 Response Santiago Prostate Male Spain
68772 RQ56001-9 Response Maastricht Prostate Male Netherlands
应该这样做:
awk 'NR==1 || == "Breast"{print}' PCA.covar > PCA.covar1