Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 什么';下面的句子有错_Linux_Bash_Unix_Awk - Fatal编程技术网

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线路。祝你好运