是否可以cut
没有换行的字符串?
printf 'test.test'
打印test.test
,没有换行符。
但如果我使用printf 'test.test' | cut -d. -f1
剪切输出,则test
后面会有换行符。
答案 0 :(得分:11)
有很多方法。除了isedev和fedorqui的答案之外,您还可以这样做:
perl -ne '/^([^.]+)/ && print $1' <<< "test.test"
cut -d. -f1 <<< "test.test" | tr -d $'\n'
cut -d. -f1 <<< "test.test" | perl -pe 's/\n//'
while read -d. i; do printf "%s" "$i"; done <<< "test.test
答案 1 :(得分:4)
不,我知道。 man cut
很短,并没有反映任何类似内容。
相反,您可以使用here-string向cut
提供printf
输出,以便新行问题再次依赖于printf
:
printf '%s' $(cut -d. -f1 <<< "test.test")
答案 2 :(得分:3)
如果您不必使用cut
,则可以使用awk
获得相同的结果:
printf 'test.test' | awk -F. '{printf($1)}'