次の内容を含むファイル 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の問題。あなたの目標はこれらのファイルをコピーするようで、これを行うより良い方法が必要です。