Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.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_Shell_Awk - Fatal编程技术网

Linux 将字母数字和数字值替换为空白

Linux 将字母数字和数字值替换为空白,linux,shell,awk,Linux,Shell,Awk,文件如下所示: 1234567890|asdfg|werty|asfgtr21|12345|zxcv=sdf|zsde=1234 2345678901|we1|sd1=12df|werty|dfghj|sdf=fgh|hjkl 所需输出为: 1234567890|asdfg|werty|||zxcv=sdf| 2345678901|||werty|dfghj|sdf=fgh|hjkl 这就是诀窍: awk -F'|' '{ printf $1"|"; for (i=2; i<=NF;

文件如下所示:

1234567890|asdfg|werty|asfgtr21|12345|zxcv=sdf|zsde=1234
2345678901|we1|sd1=12df|werty|dfghj|sdf=fgh|hjkl
所需输出为:

1234567890|asdfg|werty|||zxcv=sdf|
2345678901|||werty|dfghj|sdf=fgh|hjkl
这就是诀窍:

awk -F'|' '{ printf $1"|"; for (i=2; i<=NF; i++) { if ($i !~ /.*[0-9].*/) printf $i;  printf "|"; } printf "\n"}' file

awk-F'|“{printf$1”|”for(i=2;i更好地阅读并提供一些您的尝试在没有任何解释的情况下用一行回答一个不费力的问题不太可能提高页面的质量。此外,您可能希望使用
FS
ORS
,这样就可以代替
printf“
printf”\n
你可以说
printf“%s”,FS
甚至
print”“
。你好,阿农,谢谢你……这个解决方案可以按要求工作,想要得到op的所谓“努力”对于一个简单的单行awk问题来说,这也不太可能提高页面质量。诚然,stackoverflow不是一个代码编写服务,但单行代码很难编写,op的努力不会帮助任何人编写。缩进的示例很好地解释了这一点。您的建议听起来不错,欢迎您编辑我的答案并添加另一种选择。不,我不会编辑你的问题。另外,我不理解否决票,因为这不是一个糟糕的答案。再说一次关于质量:当前的问题和当前的答案不太可能帮助任何人,除了提问的人:他不费吹灰之力就得到了一个简单的破解,所以他下次可能也会这样做。@fedorqui这是一个非常好的回答d答案是,它可以写得更好,而缺乏解释使它更糟。
awk -F'|' '{
    printf $1"|";
    for (i=2; i<=NF; i++) {
        if ($i !~ /.*[0-9].*/)
            printf $i;
        printf "|"
    }
    printf "\n"}' file