如何删除第一个冒号后的所有字符

时间:2014-09-19 18:10:40

标签: ksh

我有以下字符串,如果文件是二进制文件,想要删除冒号可打印或不可打印后的第一个冒号和所有字符。

/dir1/dir2/somefile.txt:09/15/2014 11:25:54 root:sometext:sometext:

最终以

结束
/dir1/dir2/somefile.txt

3 个答案:

答案 0 :(得分:0)

您可以使用cut

$ str="/dir1/dir2/somefile.txt:09/15/2014 11:25:54 root:sometext:sometext:"
$ echo "$str" | cut -d: -f1
/dir1/dir2/somefile.txt
  • -d:将分隔符设置为:
  • -f1提取第一个字段。

答案 1 :(得分:0)

您不需要sedcut或任何外部程序,Korn shell具有以下功能:

str='/dir1/dir2/somefile.txt:09/15/2014 11:25:54 root:sometext:sometext:'
IFS=':' read one two <<< "$str"
echo $one
/dir1/dir2/somefile.txt

IFS是字段分隔符。 &lt;&lt;&lt;&lt;&lt;是KSH的一个相对新近的添加,被称为“here string”(它也在bash中)。如果您使用旧的kWh(如ksh88),请使用:

IFS=':' read one two << END
$str
END
echo $one
/dir1/dir2/somefile.txt

答案 2 :(得分:-1)

String str = "/dir1/dir2/somefile.txt:09/15/2014 11:25:54 root:sometext:sometext:"

String result= str.substring(0, str.indexOf(':')+1);