内容が次のようなabc.txtファイルがあります。
<classpathentry kind="src" path="Sources"/>
<classpathentry kind="con" path="WOFramework/ERExtensions"/>
<classpathentry kind="con" path="WOFramework/ERJars"/>
<classpathentry kind="con" path="WOFramework/ERPrototypes"/>
<classpathentry kind="con" path="WOFramework/JavaEOAccess"/>
<classpathentry kind="con" path="WOFramework/JavaEOControl"/>
<classpathentry kind="con" path="WOFramework/JavaFoundation"/>
<classpathentry kind="con" path="WOFramework/JavaJDBCAdaptor"/>
すべてのパスを別のファイルにコピーしたいです。つまり、出力テキストファイルが次のようになります。
WOFramework/ERExtensions
WOFramework/ERJars
WOFramework/ERPrototypes
WOFramework/JavaEOAccess
WOFramework/JavaEOControl
WOFramework/JavaFoundation
WOFramework/JavaJDBCAdaptor
ベストアンサー1
ファイルが同じパターンに従うと仮定します。この場合、次のコマンドを使用できます。
grep -o ' path=.*$' file.txt | cut -c8- |rev | cut -c 4- | rev
そのため、ファイルを開き、cat
文字のみを抽出してから不要なpath=
文字を削除し、cut
そのrev
技術を使用して末尾から不要な文字を削除します。
別のawkメソッド
awk -F'path="' '{print $2}' file.txt |rev | cut -c 4- | rev
私はpath="
区切り文字として使用し、その後にすべての情報を印刷します。デフォルトではrev
上記と同じことを行います。
テスト
cat file.txt
<classpathentry kind="src" path="Sources"/>
<classpathentry kind="con" path="WOFramework/ERExtensions"/>
<classpathentry kind="con" path="WOFramework/ERJars"/>
<classpathentry kind="con" path="WOFramework/ERPrototypes"/>
<classpathentry kind="con" path="WOFramework/JavaEOAccess"/>
<classpathentry kind="con" path="WOFramework/JavaEOControl"/>
<classpathentry kind="con" path="WOFramework/JavaFoundation"/>
<classpathentry kind="con" path="WOFramework/JavaJDBCAdaptor"/>
コマンドを実行した後、
Sources
WOFramework/ERExtensions
WOFramework/ERJars
WOFramework/ERPrototypes
WOFramework/JavaEOAccess
WOFramework/JavaEOControl
WOFramework/JavaFoundation
WOFramework/JavaJDBCAdaptor
Stephaneはコメントでより良い方法を提供します。
cut -d '"' -f4 file.txt