PATH をファイルに抽出し、次のようにリストしました。
/bin
/usr/bin
/usr/local/bin
.
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin
/usr/java/default/bin
/usr/kerberos/bin
/usr/local/bin
/bin
/usr/bin
私は今、このファイルからそれを抽出し、各ディレクトリの間にコロンを入れた新しいファイルの 1 行として復元したいと考えています。空のファイルを取得していますが、どこが間違っているのか教えていただけませんか? これは、ファイルへの復元を実行するために実行しているコマンドです。
echo -e ${bash_list tr \\ :\n} > bash_PATH
答え1
tr
STDIN (標準入力) から入力を受け取ります。次を試してください:
$ tr '\n' ':' > output_file < input_file
Bash のパラメータ拡張の構文を使用しましたが、パラメータとして使用できるのは変数または特殊なシェル パラメータのみであるため、ファイルをパラメータとして使用しています。これは正しくありません。
あなたがしようとしていることを実行するには、以下のみを使用しますbash
:
$ var="$(<bash_list)"
$ echo "${var//$'\n'/:}" > bash_PATH
ファイルには次のbash_PATH
内容が含まれます:
/bin:/usr/bin:/usr/local/bin:.:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin:/usr/java/default/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
また、「$PATH」に重複したディレクトリ名があることにも注意してください(これは例として意図的なものだと期待しています)。順序を変えずに重複を削除するには、以下を試してください。これ。