私はファイルから文字列を抽出し、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 -o
sed
これは、データの抽出と変換にとの組み合わせを使用します。
grep -o
各ビットをData="..."
別々のラインにドラッグし、sed
各ラインを最初ににData="
変更して/home/user
から"
最後から削除します。