我在cut上遇到了奇怪的问题,我写了一个脚本,在那里我有行:
... | cut -d" " -f3,4 >! outcut接收此数据(我用echo检查了它)
James James 033333333 0 0.00但是我在out中收到了空行,有人能解释一下为什么吗?
发布于 2010-06-02 19:18:39
您需要压缩空格序列,以便将每个空格字符串替换为一个空格。挤压( tr command's -s )选项非常适合于此:
$ ... | tr -s " " | cut -d" " -f3,4 >! out发布于 2010-06-02 19:08:14
如果您需要文本文件中的字段,awk几乎总是合适的选择:
... | awk '{print $3" "$4}'例如:
$ echo 'James James 033333333 0 0.00' | cut -d" " -f3,4
$ echo 'James James 033333333 0 0.00' | awk '{print $3" "$4}'
033333333 0发布于 2010-06-02 19:05:29
Cut不会将多个空格视为单个空格,因此它匹配空格之间的“虚无”。
当您省略>! out部件时,会得到空行吗?例如,你的目标是正确的领域吗?
如果输入字符串使用固定间距,则可能需要使用cut -c 4-10,15-20 | tr -d ' '提取字符组4-10和15-20,并删除其中的空格。
https://stackoverflow.com/questions/2957026
复制相似问题