【发布时间】:2014-09-13 19:24:48
【问题描述】:
我认为这个问题不言自明。我是初学者,所以请让我知道这是否可能。如果没有,请给我一个更好的解决方案,因为我的 bash 脚本严重依赖于某些 awk 语句,但大部分脚本都在 bash 中。我在我的 bash 脚本中使用 awk 语句比较两个文件。基本上检查值是否相同。 (参见下面的文件)
file1.txt
Name Col1 Col2 Col3
-----------------------
row1 1 4 7
row2 2 5 8
row3 3 6 9
file2.txt
Name Col1 Col2 Col3
-----------------------
row1 1 4 7
row2 2 5 999
这是我的 bash 脚本的结构:
#!/bin/bash
.
.
.
awk -F '\t' '
# skips first two lines
FNR < 2 {next}
FNR == NR {
for (i = 2; i <= NF; i++) {
a[i,$1] = $i;
}
b[$1];
next;
}
($1 in b) {
for (i = 2; i <= NF; i++)
{
# does something
}
}
' file1.txt file2.txt
.
.
.
我有很多只在awk 语句中有用的重复代码,所以我想创建一个函数,将其放置在awk 语句中以避免重复。这可能吗?
如果需要进一步解释,请告诉我。
【问题讨论】:
标签: linux bash shell awk scripting