以下 sed 返回 ( ...| od -c
),不带...|cut -d "\n" -f
0000000 1 9 2 \n 2 5 0 \n
0000010
伪代码
# http://unix.stackexchange.com/a/290407/16920
sed -n -f - /usr/share/X11/xkb/symbols/us <<END_SED | cut -d "\n" -f1
/xkb_symbols "dvorak" {/,/^};/{
/xkb_symbols "dvorak" {/=
/^};/=
}
END_SED
但输出空白。
系统:Ubuntu 16.04 64 位
硬件:Macbook Air 2013-mid
Sed:4.2.2
Cut,od:Coreutils 8.25
答案1
该cut
实用程序“切断”一个或多个列从它的输入中。与许多其他 Unix 实用程序一样,cut
它是一个基于流的逐行读取器,它将其处理应用于每一行输入,然后继续处理下一行。
您不能将其用作\n
分隔符,cut
因为这是它所期望的分隔行。
一种迂回的方式创造要使用的两列cut
将是使用paste
。该paste
实用程序还逐行读取输入,但它会根据您提供的规范将其缓冲并输出到制表符分隔的列中。
在这种情况下:
$ mycommand | paste - -
192 250
然后cut
添加:
$ mycommand | paste - - | cut -f1
192