2011-12-01 2 views
1

これは基本的なことですが、何百行ものファイルを繰り返して部分文字列を抽出する最も簡単な方法は見つかりませんでした。基本ストリーム/ sed? bashスクリプトは、各行で部分文字列を実行します。

私は、ファイルがある場合:

ABCY uuuu 
UNUY uuuu 

... 

は私がで終わるしたい:理想的には、サブストリングを行う

uuuu 
uuuu 
.... 

{5}検出文字5と出力時と

答えて

5

あなたは必要ありませんsed

cut -c5-9 yourfile 
+0

ありがとうございました。私は別の側面の質問があります。どのように文字列を分割しますか?私は 'タブ'文字に基づいて分割したい。 –

+0

'cut -d -f ' - 実際には 'man cut'を実行してください。あなたはあなたの限界と可能性を知る前にどのような質問をするのか分かりません。 –

+0

そしてはい、tabは 'cut'のデフォルトの区切り文字です –

1

cutまたはawkの方が使いやすいでしょう。あなたのフィールドはスペースで区切られていることを仮定して、あなたは、2番目のフィールドをしたい、あなたが使用することができます。

cut -d' ' -f2 file.txt 

awk '{print $2}' file.txt 

あなたはまた、サブストリングを抽出するためにcutawkを使用することができます。

cut -c6- file.txt 
awk '{print substr($0,6);}' file.txt 

しかし、あなたは本当に場合あなたは、whileループを使用することができ、ファイルおよび抽出するサブストリングを反復処理したい:

while IFS= read -r line 
do 
    echo ${line:5} 
done < file.txt 
+0

そうではありません、私はインデックスが必要です。私はちょうど架空の線を与えていた。マイケルはそれを得ましたが、あなたの答えはまた有用です。 –

0

あなたが本当にSED愛していれば、あなたは試みることができる:

sed -r 's/^.{5}//' file 
関連する問題