【发布时间】:2022-01-19 20:44:53
【问题描述】:
我正在用 bash 编写一个解析器,其中每行都有一个带有一个“:”的文本,如果冒号之前的部分与单词“txt”匹配,我需要输出冒号之后的部分。
所以我用“:”分割了文本的行,然后尝试在 awk 中使用 if 语句。
我尝试过的命令:
echo "txt:hello" | awk -F: '{if [[ $1="txt" ]] then print $2 fi}'
但这导致了 if 语句中的语法错误,所以我想知道 awk 的 if-else 构造是否与基本 bash 不同?
【问题讨论】:
-
请用
awk if statement这个词咨询您最喜欢的互联网搜索引擎。 -
echo "txt:hello" | awk -F ':' '{ if($1=="txt") { print $2 } else { print "world" } }' -
echo "txt:hello" | awk -F: '$1=="txt"{print $2}'
标签: if-statement awk