【发布时间】:2017-07-31 07:35:18
【问题描述】:
因此,我正在寻找如何组合一个 Bash 脚本,该脚本可以提示用于批量更改文件中的文件中的字符串和变量,并将更改应用于具有该字符串或变量的所有文件到新文件。
例如,我有一堆文件,其中包含一个带有数字值的字符串,我想将其更改为新值,即;
font-size=30
假设我想将 30 更改为不同的数值 25。我知道这可以通过这样做来实现;
find . -type f -exec sed -i 's/font-size=30/font-size=25/g' {} \;
但是,如果我想让用户通过在 bash 提示符中键入自己的值来更改为任何值是棘手的,就像这样,即;
Search and replace all font values of %n
Font size Value = 30
Enter new value:
作为一个要求用户输入的棘手提示,我如何能够做到这一点?因此,不仅能够搜索和替换属于 Font-size= 的值的所有实例,还能够搜索和替换其他值,例如 x 和 y 位置值。
我基本上要做的就是制作一个提示菜单,您必须从菜单中选择您想要做的事情,然后按照我上面描述的那样做。给它一个输入文件,或者一个包含一堆文件的目录,例如:
Choose from menu [1-3]:
1 - Replace Font-size values
2 - Replace X and Y values
3 - Exit
- - -
Select file or directory target: <user_input_here>
【问题讨论】:
-
您的意思是交互式而不是棘手(根据 Merriam-Webster 的说法,不容易管理、管理或指导)?
-
互动、棘手,到底有什么区别?
-
它们是两个完全不同的术语,含义完全不同。我能想到的唯一关系是它们都是英文单词。
-
文件的格式是什么?
-
如果所有文件都在同一个目录中(或不超过 2 个深度),那么直接使用
sed和文件通配比使用find生成一个单独的 @ 实例要高效得多987654330@ 每个文件一次,例如sed -i 's/font-size=30/font-size=25/g' *.{layout,styles}
标签: bash