文字列を追加(プレフィックスとサフィックス)する方法

文字列を追加(プレフィックスとサフィックス)する方法

次の内容を含むファイル b.txt があります。

libiomp5.so
libmkl_avx.so
libmkl_core.so
libmkl_def.so
libmkl_gf_ilp64.so
libmkl_gf_lp64.so
libmkl_gnu_thread.so

次の文字列にプレフィックスを追加したいと思います。

cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/

そして次の文字列サフィックス

/home/oracle/staging/enterpriseR/old_libs

結局はこんな感じ

cp /home/oracle/staging/enterpriseR/old_libs/libiomp5.so /home/oracle/staging/enterpriseR/old_libs

以下を試しましたが、エラーが発生します。

ls | grep *.so | sed 's/.*/cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/&/home/oracle/staging/enterpriseR/old_libs'

ファイルの一致する文字列に関係なく(プレフィックス/サフィックス)を追加する必要がありますか?

答え1

使用gawk:

gawk -i inplace '{print "cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/"$1,"/home/oracle/staging/enterpriseR/old_libs"}' input

そしてawk

awk '{print "cp /u01/app/oracle/product/12.1.0.2/dbhome_1/lib/"$1,"/home/oracle/staging/enterpriseR/old_libs"}' input > output

mv output input

しかし、私の考えでは、XYの問題。あなたの目標はこれらのファイルをコピーするようで、これを行うより良い方法が必要です。

関連情報