テキストファイルで複数の文字列を見つけて返します。

テキストファイルで複数の文字列を見つけて返します。

私はファイルから文字列を抽出し、bashを使用して他のファイルに追加する方法を探しています。関連ファイルには、次の形式のデータが含まれます。

Data="/dataset/0001" a bunch of random stuff I don't need Data="/dataset/0002" more random stuff Data="/dataset/0003"

など。

二重引用符(たとえば、、、、、、etc)の間にある文字列を抽出して返したいです/dataset/0001/dataset/0002/dataset/0003

この問題を解決する方法について提案がありますか?

後続の質問で/home/user各戻り値(たとえば、など)の前に定数文字列(たとえば)を追加できる場合は、きれいになります/home/user/dataset/0001/home/user/dataset/0002/home/user/dataset/0003

これについてのアドバイスをありがとうございます。

ベストアンサー1

$ grep -o 'Data="[^"]*"' file | sed 's,Data=",/home/user,; s/"$//'
/home/user/dataset/0001
/home/user/dataset/0002
/home/user/dataset/0003

grep -osedこれは、データの抽出と変換にとの組み合わせを使用します。

grep -o各ビットをData="..."別々のラインにドラッグし、sed各ラインを最初ににData="変更して/home/userから"最後から削除します。

おすすめ記事