rah*_*hmu 3 awk regular-expression
在awk. 我正在 Solaris 10 上工作,所以它可能是awk. 我想出了这个基本的单行代码,至少对于我的特定输入是有效的。
awk -F\; '$3 ~ /[ ]*...............................*/' file.csv
Run Code Online (Sandbox Code Playgroud)
分隔符周围可能有也可能没有空格,因此[ ]*是正则表达式的一部分。
想要避免打印 30 次点.字符,我尝试了以下操作:
awk -F\; '$3 ~ /[ ]*.\{30\}.*/{print $3}' file.csv
Run Code Online (Sandbox Code Playgroud)
这没有返回任何结果。如果它有任何帮助,我正在使用ksh88.
避免输入这 30 个连续点的最佳方法是什么?
awk -F\; 'length($3) == 30' file.csv
Run Code Online (Sandbox Code Playgroud)
如果您可能有空格(如它所示),您可以通过将其作为字段分隔符的一部分来摆脱它:
awk -F' *; *' 'length($3)==30' file.csv
Run Code Online (Sandbox Code Playgroud)