これは基本的なことですが、何百行ものファイルを繰り返して部分文字列を抽出する最も簡単な方法は見つかりませんでした。基本ストリーム/ sed? bashスクリプトは、各行で部分文字列を実行します。
私は、ファイルがある場合:
ABCY uuuu
UNUY uuuu
...
は私がで終わるしたい:理想的には、サブストリングを行う
uuuu
uuuu
....
を
{5}検出文字5と出力時と
これは基本的なことですが、何百行ものファイルを繰り返して部分文字列を抽出する最も簡単な方法は見つかりませんでした。基本ストリーム/ sed? bashスクリプトは、各行で部分文字列を実行します。
私は、ファイルがある場合:
ABCY uuuu
UNUY uuuu
...
は私がで終わるしたい:理想的には、サブストリングを行う
uuuu
uuuu
....
を
{5}検出文字5と出力時と
あなたは必要ありませんsed
:
cut -c5-9 yourfile
cut
またはawk
の方が使いやすいでしょう。あなたのフィールドはスペースで区切られていることを仮定して、あなたは、2番目のフィールドをしたい、あなたが使用することができます。
cut -d' ' -f2 file.txt
awk '{print $2}' file.txt
あなたはまた、サブストリングを抽出するためにcut
とawk
を使用することができます。
cut -c6- file.txt
awk '{print substr($0,6);}' file.txt
しかし、あなたは本当に場合あなたは、whileループを使用することができ、ファイルおよび抽出するサブストリングを反復処理したい:
while IFS= read -r line
do
echo ${line:5}
done < file.txt
そうではありません、私はインデックスが必要です。私はちょうど架空の線を与えていた。マイケルはそれを得ましたが、あなたの答えはまた有用です。 –
あなたが本当にSED愛していれば、あなたは試みることができる:
sed -r 's/^.{5}//' file
ありがとうございました。私は別の側面の質問があります。どのように文字列を分割しますか?私は 'タブ'文字に基づいて分割したい。 –
'cut -d -f ' - 実際には 'man cut'を実行してください。あなたはあなたの限界と可能性を知る前にどのような質問をするのか分かりません。 –
そしてはい、tabは 'cut'のデフォルトの区切り文字です –