使用Bash将所有文件键替换为新值


IP地址
2025-03-16 12:16:21 (23天前)


在不精确键的情况下,找到并替换文件中所有键值的最佳方法是什么?

示例:

originalFile.txt ————————————> newFile.txt


4 条回复
  1. 0# 楊♡ | 2019-08-31 10-32




    1. awk -vFS=”=” -v OFS=”=” $2=”$$1 originalFile.txt

    2. </code>


    运用

    sed

    :使用反向引用捕获左侧

    =



    \1

    和权利

    =



    \2





    1. sed -r s/(^[^=]+)=(.)/\1=$\1/g originalFile.txt
      key1=$key1
      key2=$key2
      key3=$key3

    2. </code>

  2. 1# 易米烊光 | 2019-08-31 10-32



    此脚本从env中提取密码并将其包含在新文件中:




    1. while read line; do
      password=$(echo $line | sed s/(.)=./\1/g”)
      newpassword=”$(printenv $password)”
      if [ -n $newpassword ]; then
      echo $password=$newpassword
      else
      echo $line
      fi
      done newFile.txt

    2. </code>

  3. 2# 淋了一整夜的雨 | 2019-08-31 10-32



    这应该这样做:




    1. sed -re s/^(key[[:digit:]]+)=.*$/\1=\$\1/‘ originalFile.txt

    2. </code>


    它起作用是因为(因为

    -r

    选项用于)一对括号

    捕获

    它的比赛。在替代模式中,

    \1

    再现匹配的文本。


登录 后才能参与评论