在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"
发布于 2022-08-16 03:02:26
awk文件"test.awk“将”在$之前和行尾添加双引号“。
(如果该行不包括$,它将只打印该行的原样。)
{
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;
}跑过去
awk -f test.awk textfile.txt > result.txt"textfile.txt“是输入文件,"result.txt”是输出文件。
"test.awk“的一个较短的版本是使用"index”命令在行中查找"$“,请参见下面的内容:
{
s=index($0,"$")
if(s!=0)
printf("%s\"%s\"\n",substr($0,1,s-1),substr($0,s,length($0)-s));
else
print;
}https://stackoverflow.com/questions/73368213
复制相似问题