ディレクトリのリストを含むファイルがあります。
$ cat dirs.txt
/some/path
/other/path
/some/another/one
現在のディレクトリは/home/loom
$ echo $PWD
/home/loom
$PWD
次のように各行に追加したいと思いますdirs.txt
。
/home/loom/some/path
/home/loom/other/path
/home/loom/some/another/one
失敗しながらコマンドを試しました。
$ cat dirs.txt | awk '{print $PWD$1}'
/some/path/some/path
/other/path/other/path
/some/another/one/some/another/one
各行を2倍にします。私の問題を解決できるコマンドは何ですか?
私の言葉はパラメータ応答を意味したものです。cat dirs.txt | awk '{print "/home/loom" $1}'
ベストアンサー1
PWD
はシェル変数なので、awkで使用される単一引用符内では拡張されません。
awk -v pwd="$PWD" '{print pwd$1}' dirs.txt
これはpwd
awk
変数をシェル変数の値に設定し、各行の列PWD
1を印刷しdirs.txt
てその値を先頭に追加します。
GNU awkでは、ファイルを出力で上書きするオプションを使用できます-i inplace
。それ以外の場合は、ファイルを新しいファイルにリダイレクトし、必要に応じて既存のファイルを上書きする必要があります。