2017-07-29 10 views
1

bashスクリプトにはまったく新しいので、通常はリストを持っていると、各ファイルは1つの国に固有のファイルになります。たとえばUSA.txtクライアントのアドレスはZIP、数値は)プライバシーのためにマスクされています。bashスクリプトを使用して文字列の最初と最後の数字を削除する方法

38495newyork940 
454354irvine40404 
2333wathington4440 
32333california002929 
23234dallas4th93303 

私はそれぞれの行から先頭と最後の数字を削除しますbashスクリプトの引数としてUSA.txtを実行したいです。特定の都市や州には名前の中に数字があるので、私はそれらを保管しておきたいことに注意してください。

私はsedのコマンドに対してそれを実行しようとしたが、私はちょうどのようなコマンドで先頭または最後の数字を削除する最終結果を組み合わせることはできません:大手桁ため

sed -r 's/^[0-9]+(.*[^0-9].*)$/\1/g' 

とのために終了桁は:

7152657704179:

sed "s/\([^0-9]\)[0-9]*\s*$/\1/" 

私のような出力を必要としますの

おかげ

答えて

3

あなたが好きなようsedとして多くのコマンドを与えることができます:

$ sed 's/^[0-9]*//; s/[0-9]*$//' USA.txt 
newyork 
irvine 
wathington 
california 
dallas4th 

それとも、1つのコマンドでそれをすべて行うことができた:

$ sed 's/^[0-9]*\(.*[^0-9]\)[0-9]*$/\1/' USA.txt 
newyork 
irvine 
wathington 
california 
dallas4th 
+1

と 'だろう第三の道をsed -Eは/^[0-9] * | [0-9] * $ // g "または" sed -E 's/^ [0-9] * | [0-9] * $ // g''(OPのサンプルの末尾にスペースがあります) – Sundeep

+0

@Sundeepスペースはアーティファクトのようです。それらは編集モードにはありません(最後のサンプル行を除く)。 –

+0

OPのファイルにはありません。 – Sundeep

関連する問題