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
Unix 查找并替换为AWK_Unix_Awk - Fatal编程技术网

Unix 查找并替换为AWK

Unix 查找并替换为AWK,unix,awk,Unix,Awk,我有一个名为sfe_mail.txt的文件,其内容为 Katia Dargains Artur Santos Marcio Breder Luis Plum Michel Aguiar Vinicius Lourenco Willian Wendling Paulo Araujo 我想用点替换单词之间的空格和制表符 我已发出命令: awk '{ gsub (/ \t+/,".");print}' sfe_mail.txt 但是它不起作用。你能告诉我出了什么问题

我有一个名为sfe_mail.txt的文件,其内容为

Katia   Dargains
Artur   Santos
Marcio  Breder
Luis    Plum
Michel  Aguiar
Vinicius    Lourenco
Willian Wendling
Paulo   Araujo
我想用点替换单词之间的空格和制表符

我已发出命令:

awk '{ gsub (/  \t+/,".");print}' sfe_mail.txt 

但是它不起作用。你能告诉我出了什么问题吗?制表符和空格是awk中默认的字段分隔符。将输出字段分隔符设置为
,使用
$1=$1重新生成记录,然后输出:

$ awk -v OFS="." '{$1=$1;print}' file
Katia.Dargains
Artur.Santos
Marcio.Breder
Luis.Plum
Michel.Aguiar
Vinicius.Lourenco
Willian.Wendling
Paulo.Araujo
如果您坚持使用
gsub

$ awk '{gsub(/[\t ]+/,".");print}' file

匹配的正则表达式是
/\t+/
,即2个空格和一个或多个制表符。

制表符和空格是awk中的默认字段分隔符。将输出字段分隔符设置为
,使用
$1=$1重新生成记录,然后输出:

$ awk -v OFS="." '{$1=$1;print}' file
Katia.Dargains
Artur.Santos
Marcio.Breder
Luis.Plum
Michel.Aguiar
Vinicius.Lourenco
Willian.Wendling
Paulo.Araujo
如果您坚持使用
gsub

$ awk '{gsub(/[\t ]+/,".");print}' file
匹配的正则表达式是
/\t+/
,即2个空格和一个或多个制表符。

Simplesed可选:

sed 's/[[:space:]]\+/./' file

对于awk,以下是最简单的一种:

awk '{ print $1"."$2 }' file
简单sed备选方案:

sed 's/[[:space:]]\+/./' file

对于awk,以下是最简单的一种:

awk '{ print $1"."$2 }' file

使用awk的简单解决方案

awk '{ print $1"."$2 }' sfe_mail.txt
您也可以按照@James在评论中的建议尝试tr

tr -s '[:blank:]' . < sfe_mail.txt
tr-s'[:blank:]。
使用awk的简单解决方案

awk '{ print $1"."$2 }' sfe_mail.txt
您也可以按照@James在评论中的建议尝试tr

tr -s '[:blank:]' . < sfe_mail.txt
tr-s'[:blank:]。