首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linux中使用AWK命令改变模式

如何在Linux中使用AWK命令改变模式
EN

Stack Overflow用户
提问于 2022-08-16 02:36:26
回答 1查看 50关注 0票数 -4

在awk命令中,我需要您的帮助,我有下面的输入文件:

sudo su - USER1 -c $Job_dir/ abcd d.shabcd pdwd line1

sudo su - USER2 -c $Job_dir/ancd.shABCDpdwd line2

对于所有行,我都希望得到这样的结果(希望在$之前添加双引号,并在行尾添加双引号:

sudo su - USER1 -c“$Job_dir/ abcd d.sh abcd pdwd line1"

sudo su - USER2 -c "$Job_dir/ancd.sh abcd pdwd line2"

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-16 03:02:26

awk文件"test.awk“将”在$之前和行尾添加双引号“。

(如果该行不包括$,它将只打印该行的原样。)

代码语言:javascript
复制
{
   len=length($0);
   pos=-1;
   for(i=0;i<len;i++)
   {
      if(substr($0,i,1)=="$")
      {
         pos=i;
         printf("%s\"%s\"\n",substr($0,1,pos-1),substr($0,pos,len-pos));
      }
   }
   if(pos==-1) print;
}

跑过去

代码语言:javascript
复制
awk -f test.awk textfile.txt > result.txt

"textfile.txt“是输入文件,"result.txt”是输出文件。

"test.awk“的一个较短的版本是使用"index”命令在行中查找"$“,请参见下面的内容:

代码语言:javascript
复制
{
   s=index($0,"$")
   if(s!=0)
   printf("%s\"%s\"\n",substr($0,1,s-1),substr($0,s,length($0)-s));
   else
   print;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73368213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档