awk 中的默认分隔符是空格到非空格的更改。
cut 的默认值是制表符。
我可以告诉 cut 使用非空白到空白分隔符吗?
例如
A:
foo bar
cut -d' ' -f2 a
只打印一个空格,但应该打印酒吧。
awk '{ print $2; } a
打印栏。
当然,如果您需要这种语义,通常您可以使用 awk 作为剪切替换。但 cut 的优点是内存效率很高。特别是它不会将未使用的列加载到内存中(与某些 awks 不同)。
答案1
您可以使用类似的方法预处理数据tr -s ' ' '\t'
。但除非你的队伍很长,否则你不会得到任何好处。 (多长时间?测量一下就知道了。)
答案2
我不知道如何做cut(1)
你想做的事。我相信您的想法是正确的,如果您混合了空格分隔符,那么最好的选择是awk(1)
.