Bash awk-F命令在linux中不工作
简单的awk命令不起作用 请告诉我这里出了什么问题Bash awk-F命令在linux中不工作,bash,unix,awk,Bash,Unix,Awk,简单的awk命令不起作用 请告诉我这里出了什么问题 echo "hi hai hello" | awk -F"h" '{print $1}' 我在Linux和solaris中进行了尝试,但没有任何结果 产出: -bash-3.00$ echo "hi hai hello" |awk -F"h" '{print $1}' -bash-3.00$ 如果字段分隔符为“h”,则字段为“,”i“,”ai“,”ello“。因此,第一个字段($1)是空字符串,awk将根据请求打印出来 通常,如果字符串以
echo "hi hai hello" | awk -F"h" '{print $1}'
我在Linux和solaris中进行了尝试,但没有任何结果
产出:
-bash-3.00$ echo "hi hai hello" |awk -F"h" '{print $1}'
-bash-3.00$
如果字段分隔符为“h”,则字段为“,”i“,”ai“,”ello“。因此,第一个字段($1)是空字符串,awk
将根据请求打印出来
通常,如果字符串以字段分隔符开头,则第一个字段为空。类似地,如果它以字段分隔符结尾,awk
认为在该分隔符之后还有一个空字段。如果有一系列字段分隔符,那么它们之间就被认为是空字段
查看正在发生的事情的一种方法是循环所有字段并将其打印出来(可能在字段周围加上引号,以便始终获得一些可见的输出):
echo“hi hai hello”| awk-Fh'{for(i=1;i如果字段分隔符是“h”,那么字段是“,”i“,”ai“和”ello“。因此第一个字段($1)是空字符串,它将根据请求打印出来
一般来说,如果字符串以字段分隔符开头,则第一个字段为空。类似地,如果字符串以字段分隔符结尾,awk
认为有另一个空字段超过该字段。如果有一系列字段分隔符,则认为它们之间有空字段
查看正在发生的事情的一种方法是循环所有字段并将其打印出来(可能在字段周围加上引号,以便始终获得一些可见的输出):
echo“hi hai hello”| awk-Fh'{for(i=1;i+1是主要原因,但只需添加默认字段分隔符”
在忽略前导空格和尾随空格**后有一个独特的含义,即将记录拆分为由任何空格序列分隔的字段**
,这就是为什么FS=“
(默认值)时的原因“a”
(空格a)有一个字段,$1=“a”
,而当FS=“[]”
(一个文本空白字符)同一条记录“a”
有两个字段$1=“”,$2=“a”
。后一种行为对于FS的任何其他值都是模仿的,例如FS=“h”
在这种情况下。值得注意,@EdMorton.Updated.+1是主要原因,但只需添加默认字段分隔符“
有一个独特的含义,即在忽略前导空格和尾随空格**后,将记录拆分为由任意空格序列分隔的字段**
,这就是为什么FS=”“
(默认值)“a”
(空格a)有一个字段,$1=“a”
,而当FS=“[]”“
(一个文本空白字符)相同的记录“a”
有两个字段,$1=“”,$2=“a”
。后面的行为对于FS的任何其他值都是模仿的,例如在这种情况下,FS=“h”
。值得注意,@edmonth.Updated。
echo "hi hai hello" | awk -Fh '{for (i=1;i<=NF;++i) print " $"i" = \""$i"\"" }'
$1 = ""
$2 = "i "
$3 = "ai "
$4 = "ello"
echo " hi hai hello " | awk '{for (i=1;i<=NF;++i) print " $"i" = \""$i"\"" }'
$1 = "hi"
$2 = "hai"
$3 = "hello