写一个shell脚本,把一个文本中的每一行(空格隔开)写到另外一个文本中(逗号隔开)
时间: 2024-01-23 19:02:21 浏览: 151
好的,以下是一个简单的Shell脚本,可以实现你的需求:
```bash
#!/bin/bash
# 读取原始文本的文件名
read -p "请输入原始文本的文件名: " input_file
# 读取输出文本的文件名
read -p "请输入输出文本的文件名: " output_file
# 循环读取每一行,并将空格替换为逗号
while read line
do
new_line=$(echo "$line" | tr ' ' ',')
echo "$new_line" >> "$output_file"
done < "$input_file"
echo "转换完成!"
```
你可以将这段脚本保存为一个文件,比如 `convert.sh`,然后在终端中执行,输入原始文本的文件名和输出文本的文件名,即可完成转换。
相关问题
shell 脚本 空格 制表符 换成 逗号隔开
可以使用 tr 命令将空格、制表符转换成逗号,命令如下:
```shell
tr '[:blank:]' ','
```
其中,[:blank:] 表示空格或制表符的字符集。完整的脚本示例如下:
```shell
#!/bin/bash
input="hello world"
output=$(echo "$input" | tr '[:blank:]' ',')
echo "$output"
```
执行该脚本,输出结果为:
```
hello,world
```
shell脚本中替换空格
在shell脚本中替换空格的方法有多种。根据引用和引用提供的资料,其中一种方法是使用sed命令。sed命令是用于文本处理的流编辑器,可以在Mac系统中使用。
具体的替换命令可以是:
cat word.txt | sed 's/\s\ /,/g'
其中,'\s'表示空格,'\'表示转义字符,后面的空格表示出现一次或多次。所以这个命令的作用是将文本中的空格替换为逗号。
另外,也可以使用类似的命令:
cat word.txt | sed 's/[ ][ ]*/,/g'
其中,'[ ]'表示一个空格,'*'表示0个或多个,'g'表示替换每行的所有匹配。这个命令的效果也是将文本中的空格替换为逗号。
需要注意的是,在使用sed命令时,要确保正确使用转义字符和正则表达式,以达到预期的替换效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文