awk 前的令人困惑的反斜杠,这是什么意思?
Confusing backslash before awk, what does it mean?
#!/usr/bin/env bash
for year in all/*
do
echo -ne `basename $year .gz`"\t"
gunzip -c $year | \ awk '{ temp = substr([=10=], 88, 5) + 0;
q = substr([=10=], 93, 1);
if (temp !=9999 && q ~ /[01459]/ && temp > max) max = temp }
END { print max }'
done
我对这个用于读取我在 Hadoop 书中找到的文件的 Awk 脚本有一点疑问。在第 5 行(以 gunzip
开头的行)中,在 |
之后,awk 之前的反斜杠 \
的用途是什么?
这本书可能包含错字,或者脚本未完全转录。可以选择将反斜杠用于换行:
echo "moo" | \
wc -l
相当于
echo "moo" | wc -l
但在这种特殊情况下,反斜杠在竖线之后是完全可选的,因此您不妨写成
echo "moo" |
wc -l
无论如何,问题中的脚本反斜杠是错误的。
#!/usr/bin/env bash
for year in all/*
do
echo -ne `basename $year .gz`"\t"
gunzip -c $year | \ awk '{ temp = substr([=10=], 88, 5) + 0;
q = substr([=10=], 93, 1);
if (temp !=9999 && q ~ /[01459]/ && temp > max) max = temp }
END { print max }'
done
我对这个用于读取我在 Hadoop 书中找到的文件的 Awk 脚本有一点疑问。在第 5 行(以 gunzip
开头的行)中,在 |
之后,awk 之前的反斜杠 \
的用途是什么?
这本书可能包含错字,或者脚本未完全转录。可以选择将反斜杠用于换行:
echo "moo" | \
wc -l
相当于
echo "moo" | wc -l
但在这种特殊情况下,反斜杠在竖线之后是完全可选的,因此您不妨写成
echo "moo" |
wc -l
无论如何,问题中的脚本反斜杠是错误的。