Linux 什么';下面的句子有错
Linux 什么';下面的句子有错,linux,bash,unix,awk,Linux,Bash,Unix,Awk,awk-F',''$2~/^*[0-9]*(\.[0-9]+)?“*$/{sub(/”,“\n”,$2);}'sample.txt>out.txt 大家好 上面的awk命令有什么问题,我只得到一个空文件。 涉及 sample.txt: 3“,3” 6位,6位 7'4英寸到10'3-1/2英寸,7'4英寸到10'3-1/2英寸 4.8“,4.8” 可从99英寸调整至111英寸最大值148,可从99英寸调整至111英寸最大值148 预计产量为 output.txt: 3”,3 6位, 7'4英寸到1
awk-F',''$2~/^*[0-9]*(\.[0-9]+)?“*$/{sub(/”,“\n”,$2);}'sample.txt>out.txt
大家好
上面的awk命令有什么问题,我只得到一个空文件。
涉及
sample.txt:3“,3”
6位,6位
7'4英寸到10'3-1/2英寸,7'4英寸到10'3-1/2英寸
4.8“,4.8”
可从99英寸调整至111英寸最大值148,可从99英寸调整至111英寸最大值148
预计产量为 output.txt:
3”,3
6位,
7'4英寸到10'3-1/2英寸,
4.8”,4.8
可从99“调整到111”-最大值148,
查看数据,您的awk语句本身没有“错误”,只是您的正则表达式与您的输入不匹配 下面的awk有什么问题 awk-F',“$1~/^[0-9]([0-9]+)?”*$/{sub(/“/,”\n“,$1);}” sample.txt>out.txt 直接回答你的问题: 假设正则表达式部分是正确的。您进行了替换,但没有打印/输出任何内容。因此,您将得到一个空的
out.txt
编辑
根据您的示例添加一个有效的awk解决方案:
kent$ awk -F, -v OFS="," '{if($2~/^[0-9.]+"$/)sub(/"/,"",$2);else $2=""}1' file
3",3
6-position,
7' 4" to 10' 3-1/2",
4.8",4.8
Adjustable from 99" to 111" - max 148,
在不知道输入文件中有什么内容的情况下无法判断。请发布示例输入和示例的预期输出。Hi@kent我在下面使用的命令
awk-F','$2~/^*[0-9]*(\.[0-9]+)?“*$/{sub(/”,'',$2);print$2}'sample.txt>out.txt
。仅第二栏被打印出来,我想得到总结中提到的结果,即pmy对您的问题的回答。我指出了你为什么有一个空文件。你评论中的awk行完全不同$1 $2? 顺便说一句,你已经发布了3个问题,它们非常相似/相同。你也有很多答案,没有一个有用?1美元2美元可以解决这个问题,一个包含50多列的文件怎么样?我被困在这里了。@GanzRicanz我添加了一个有效的awk解决方案。希望你的问题得到解决。你在问题中提到过这个要求吗?无论如何,试试我的awk线路。祝你好运