2011-11-14 9 views
2

sedのようなLinuxの機能を使って文字列を切り取る方法を説明できる人がいます。 例えば私が ".xmlファイル" をカットする方法文字列の一部を切り取る

THIS-some-string-zzz-55.xml 

を刺しますか?

THIS-some-string-zzz-55 

ありがとう:

結果は次のようにする必要があります!

答えて

0

これは動作するはずです:

echo "THIS-some-string-zzz-55.xml" | sed 's/\.xml$//' 
+0

-1説明なし回答掲示板 –

5

いくつかの方法を:あなたはシェルスクリプトから呼び出すか、C言語やスクリプト言語からそれをexecしことができるように

basename thisfile.xml .xml 

ベース名は、それは自身の実行可能ファイルのあります。


あなたのシェルがある場合はbash:と最後に

FILE=filename.xml 
echo “filename: ${file%.*}” 
echo “extension: ${file##*.}” 


..and sedの

echo "filename.xml" | sed 's/\.xml$//' 

のsedの正規expressinで '$' を.xmlの試合を行うことを文字列の終わりにのみ。

1

Grep時間

$> echo THIS-some-string-zzz-55.xml | grep -o -P "(.*)(?=\.xml)" 
THIS-some-string-zzz-55 

Grepの魔法-Pフラグを持って

-P, --perl-regexp 
      Interpret PATTERN as a Perl regular expression. This is highly 
      experimental and grep -P may warn of unimplemented features. 

ところで、ここであなたは私がここで使っていることを肯定先読み(?=*)を、見つけることができる便利なtable、です。

0

BashはLinuxの機能としてカウントされますか?

もしそうなら、これはあなたのために働くかもしれない:

# string="THIS-some-string-zzz-55.xml" 
# echo ${string%.xml} 
THIS-some-string-zzz-55 

またはこの場合は:

# echo ${string%.*} 
THIS-some-string-zzz-55 

は、説明のためにhereを参照してください。

関連する問題