我有以下字符串,如果文件是二进制文件,想要删除冒号可打印或不可打印后的第一个冒号和所有字符。
/dir1/dir2/somefile.txt:09/15/2014 11:25:54 root:sometext:sometext:
最终以
结束/dir1/dir2/somefile.txt
答案 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)
您不需要sed
或cut
或任何外部程序,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);