防止cut命令中的换行符

时间:2014-10-02 12:29:00

标签: linux newline cut

是否可以cut没有换行的字符串?

printf 'test.test'打印test.test,没有换行符。

但如果我使用printf 'test.test' | cut -d. -f1剪切输出,则test后面会有换行符。

3 个答案:

答案 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-stringcut提供printf输出,以便新行问题再次依赖于printf

printf '%s' $(cut -d. -f1 <<< "test.test")

答案 2 :(得分:3)

如果您不必使用cut,则可以使用awk获得相同的结果:

printf 'test.test' | awk -F. '{printf($1)}'