Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash awk-F命令在linux中不工作_Bash_Unix_Awk - Fatal编程技术网

Bash awk-F命令在linux中不工作

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将根据请求打印出来 通常,如果字符串以

简单的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