查找并替换AWK

时间:2017-08-28 18:03:49

标签: 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 

但它不起作用。你能告诉我什么不对吗

3 个答案:

答案 0 :(得分:4)

选项卡和空格是awk中的默认字段分隔符。将输出字段分隔符设置为//define template var template = $('#content:first').clone(); //define counter var count = 0; //add new section $('body').on('click', '#repeat', function() { //increment count++; //remove cross button div template.clone().find('cross').removeAttr("#cross"); //update id of ifYes & ifNo template.clone().find('#ifYes').attr("id", "#ifYes"+count); template.clone().find('#ifNo').attr("id", "#ifNo"+count); //loop through each input var inputSection = template.clone().find(':input').each(function(){ //set id to store the updated section number var newId = this.id + count; //update id this.id = newId; }).end() //inject new section with animation .appendTo('#content').hide() .appendTo('#content').slideDown(500) return false; }); //remove section $('#content').on('click', '.cross', function() { //slide up section $(this).parent().slideUp(500, function(){ //remove parent element (main section) $(this).parent().child().empty(); return false; }); return false; }); ,使用.重建记录并输出:

$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 即。 2个空格和一个或多个标签。

答案 1 :(得分:2)

简单 sed 替代方案:

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

对于 awk ,以下一个对您来说最简单:

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

答案 2 :(得分:1)

使用awk的简单解决方案

awk '{ print $1"."$2 }' sfe_mail.txt

您还可以尝试 tr ,如@James在评论

中建议的那样
tr -s '[:blank:]' . < sfe_mail.txt