Unix 查找并替换为AWK
我有一个名为sfe_mail.txt的文件,其内容为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 但是它不起作用。你能告诉我出了什么问题
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:]。