awk -F ',' '$2 ~ /^ *[0-9]*(\.[0-9]+)?" *$/{sub(/"/, "\n", $2);}' sample.txt > out.txt
大家好,
上面的awk命令出了什么问题,我只得到空文件。 向[{3}}
致敬 sample.txt的:
3",3"
6-position,6-position
7' 4" to 10' 3-1/2",7' 4" to 10' 3-1/2"
4.8",4.8"
Adjustable from 99" to 111" - max 148,Adjustable from 99" to 111" - max 148
预期产出是,
output.txt的:
3",3
6-position,
7' 4" to 10' 3-1/2",
4.8",4.8
Adjustable from 99" to 111" - max 148,
答案 0 :(得分:0)
查看数据没有什么"错误"使用你的awk语句,只是你的正则表达式与你的一个输入不匹配。
答案 1 :(得分:0)
下面的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,