【发布时间】:2020-05-25 19:52:48
【问题描述】:
我在文件中有以下数据,并希望将这些行分成两个变量 - 一个具有版本信息,第二个没有版本信息:
3f0e86dd5592 1969-12-31T19:00:00
0cbf659a22db 1969-12-31T19:00:00
9dd121133805 1.0.48 1969-12-31T19:00:00
4daa44734d2e 1.0.45,1.0.47,1.0.42 1969-12-31T19:00:00
如果我在下面运行,我不会得到预期的结果(我认为应该给我没有版本信息的行)。
awk '{ if ($2 == "") { print } }' file.txt
但在下面运行,给了我没有版本的行:
awk '{ if ($3 == "") { print } }' file.txt
这是为什么呢?
【问题讨论】:
-
您是否尝试查找 awk 手册?或浏览其他解释此行为的代码示例?
-
提示:在好/坏线上,$2 和 $3 的值是多少?
-
awk '{ print $2}' file.txt 1969-12-31T19:00:00 1969-12-31T19:00:00 1.0.48 1.0.45,1.0.47,1.0.42
-
awk '{ print $3}' file1.txt 1969-12-31T19:00:00 1969-12-31T19:00:00
-
我觉得现在说得通了。如果我错了,请纠正我,在没有版本的行上,将有 $3 空白。从而得到预期的结果。
标签: awk