2011-04-25 56 views

回答

2
>>> s = "randomfilename.txt:dslfkjsdosdfu" 
>>> print s.split(":")[0] 
randomfilename.txt 
2
>>> 'randomfilename.txt:randomstringmniaonovinaio'.split(':')[0] 
'randomfilename.txt' 
1

在外殼裏,你可以使用cut

python yourscript.py | cut --delim=":" -f 1 

只有字符串前第一:將被打印出來。如果您不想在沒有:的情況下獲取這些行,如果程序中出現此類行,則還可以將-s添加到該命令中。

>>> s='randomfilename.txt:randomstringmniaonovinaio' 
>>> s[:s.find(':')] 
'randomfilename.txt' 
0

分裂法是低效的。如果出於某種原因,你想與Unix工具來做到這一點,我想你可以只是去:

randomFileName=`echo $yourString | sed 's/^\(.*\.txt\):.*/\1/'` 

這只是一個sed操作。

轉義括號中的位只是匹配以.txt結尾並將其存儲在緩衝區中的任何一組字符。下一位與冒號及其後的任何文字匹配。 ^意味着從$yourString開始匹配。

\1然後替換它與任何在第一個模式緩衝區中匹配的所有東西。在這種情況下,它應該是你的隨機文件名。

0

的其他用戶都給予了Python的答案:如果你經常這樣做,在這種情況下,它可能會更好地使用