2012-02-28 11 views
0

タブ(\ t)で区切られた2つの列と改行で区切られた各レコードがある場合は、文書を変更する必要があります。次のようにドキュメントの文は、次のとおりです。切り捨て用のBash

/something/random/2345.txt 

私の目的は、文字列全体を削除し、ちょうど

sed 's/something/random//g' file.csv 

を使用しますが、私はどのように知らないこのcase.Iで番号2345を維持することです/ cause sed構文も/からエスケープしてください。また、私はタイプ

/*/*.* 

の正規表現を探していることになるので、すべてのレコードは同じ言葉を持っていますが、各エントリには、記録の一部として数を持っており、私はそれを抽出したいと思います。ではありません また、番号を含まないレコードがいくつかあります。そのレコードの次の列にある対応するエントリとともにそのレコードを削除したいと思います。 ファイルはCSV形式です。

+0

あなたの正規表現は奇妙である、あなたは、ワイルドカードとしてあることを意味していますか? 'sed -n 's%^/[^ /] */\([^ /。* *)\。[^ /] * $%\ 1%p' file.csv'実際の例とは異なる数のスラッシュが必要です。 – tripleee

+0

あなたのCSVファイルのいくつかの完成した行を投稿してください – kev

答えて

2

スラッシュをバックスラッシュでエスケープすることも、スラッシュ以外の文字を使用して式を区切ることもできます。観察:

echo foobar | sed sIfooIcrowI 
> crowbar 

もちろん、区切り文字にはアルファベット文字を使用しないでください。私はちょうどスラッシュの代わりに任意の通常の文字を使用できるという点を確認するためにここを使用しています。あなたは単なる文字列内の各ステートメントのbriningからすべての非数字文字を削除することができ

+0

アルファベットを使用することはめったに良いことではありませんが( - : – tripleee

+0

@ tripleee yeah that should;) –

0

sed 's/[^0-9]*\(.*\)[\t]*/\1/g' 
関連する問題