bash脚本从右往左匹配第n个问号替换为1
时间: 2024-02-18 22:01:44 浏览: 37
可以使用 `awk` 命令来实现从右往左匹配第 n 个问号并替换为 1 的功能。具体步骤如下:
1. 首先将字符串反转,这样就可以从左往右匹配第 n 个问号。
2. 用 `awk` 命令将第 n 个问号替换为 1。
3. 再将字符串反转回来。
具体的代码实现如下:
```
#!/bin/bash
str="hello???world???"
n=2 # 将第2个问号替换为1
# 将字符串反转
str_reversed=$(echo "$str" | rev)
# 用 awk 命令将第 n 个问号替换为 1
str_reversed_new=$(echo "$str_reversed" | awk -v n="$n" '{gsub(/\?/, "1", $n); print}')
# 将字符串反转回来
str_new=$(echo "$str_reversed_new" | rev)
echo "$str_new" # 输出替换后的字符串
```
在上面的例子中,我们将第 2 个问号替换为 1,输出的结果为 `hello??1world???`。你可以根据需要修改变量 `str` 和 `n` 的值来进行测试。
相关问题
str1="32\'b????_????_????_????_????_????_????_????",从右往左第n个问号替换为1
你可以使用和我上面提供的类似的方法来实现从右往左匹配第 n 个问号并替换为 1。具体代码如下:
```
#!/bin/bash
str1="32\'b????_????_????_????_????_????_????_????"
n=3 # 将倒数第3个问号替换为1
# 将字符串反转
str1_reversed=$(echo "$str1" | rev)
# 用 awk 命令将第 n 个问号替换为 1
str1_reversed_new=$(echo "$str1_reversed" | awk -v n="$n" '{gsub(/\?/, "1", $n); print}')
# 将字符串反转回来
str1_new=$(echo "$str1_reversed_new" | rev)
echo "$str1_new" # 输出替换后的字符串
```
在上面的例子中,我们将倒数第 3 个问号替换为 1,输出的结果为 `32'b????_????_????_????_????_????_????_1??`。你可以根据需要修改变量 `str1` 和 `n` 的值来进行测试。
写一个windows bash脚本要求快速替换文件名,加入文字1173
我可以回答这个问题。您可以使用以下命令来快速替换文件名并添加文字"1173":
```
for file in *.txt; do mv "$file" "${file/./1173.}"; done
```
这个命令将会将所有以".txt"结尾的文件名中的"."替换为"1173.",从而在文件名中添加"1173"这个文字。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![md](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)