在linux中使用awk把文件定长转换成分隔符,全部是空格变成一个空格显示。

在linux中使用awk把文件定长转换成分隔符,全部是空格变成一个空格显示。,第1张

echo "aaabbb   ccc   ddd" | sed -e 's/\(.\{3\}\)/\1|/g' -e 's/ //g' -e 's/||/| |/g' -e 's/|$//'

这个需要更改 shell分隔符为换行在for循环之前修改IFS变量IFS=$'\n' OLDIFS="$IFS"for i in `find . `doecho "$i"doneIFS="$OLDIFS"这样循环就会以换行作为单词分界.你的文件名如果出现换行,那就无能为力。虽然linux 支持文件名包含特殊字符但并不推荐,会导致别的脚本出错误。通常用下划线或短线代替空格。还有一种用find some|while read idoecho "$i"done用read i,每个循环读取一行,等价与用换行作为分隔符。记得采纳

把A 文件的第一列剪切出来做为B文件的第一列,很简单:awk '{print $1}' A | paste - B 其中,- 表示从标准输入读。 默认分隔符为tab,可以使用-d选项修改为任意分隔符(比如空格):awk '{print $1}' A | paste -d' ' file1 file2


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8376361.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存