linux命令输出行写在脚本里变空格
-
您可以使用sed命令将输出行中的换行符替换为空格,从而实现将输出行写入脚本中并用空格分隔的目的。
具体步骤如下:
1. 假设您要读取文件的内容并将每行用空格分隔后输出到脚本中。首先,使用cat命令将文件的内容读取出来:
“`
file_content=$(cat file.txt)
“`此命令将文件file.txt的内容读取并赋值给变量file_content。
2. 使用sed命令将文件内容中的换行符替换为空格:
“`
formatted_content=$(echo “$file_content” | sed ‘:a;N;$!ba;s/\n/ /g’)
“`此命令中的sed参数’:a;N;$!ba;s/\n/ /g’,表示将所有的换行符(\n)替换为空格。
3. 将处理后的内容写入脚本:
“`
echo “$formatted_content” > script.sh
“`此命令将处理后的内容写入到名为script.sh的脚本文件中。
综合起来,完整的脚本如下所示:
“`
#!/bin/bashfile_content=$(cat file.txt)
formatted_content=$(echo “$file_content” | sed ‘:a;N;$!ba;s/\n/ /g’)
echo “$formatted_content” > script.sh
“`请根据您的实际需求将脚本中的file.txt替换为您要处理的文件名。同时,请确保脚本有可执行的权限(使用chmod命令添加执行权限)。
2年前 -
在Linux中,可以使用sed命令将行中的空格替换为换行符。下面是一个示例脚本,它将读取文件中的每一行,并将每行的空格替换为换行符。
“`bash
#!/bin/bashwhile IFS= read -r line; do
new_line=$(echo “$line” | sed ‘s/ /\\n/g’)
echo “$new_line”
done < input.txt```这个脚本假定输入文件名为input.txt,你可以将其替换为你自己的文件名。脚本首先使用while循环逐行读取输入文件中的内容。然后,它使用sed命令将每行中的空格替换为换行符,并将结果保存到变量new_line中。最后,脚本将new_line变量的内容打印出来。以下是脚本的详细解释:1. 第一行`#!/bin/bash`指定了脚本使用的shell类型为bash。2. `while IFS= read -r line; do`开始一个while循环,IFS为空格,read命令将输入的每一行保存到变量line中。3. `new_line=$(echo "$line" | sed 's/ /\\n/g')`使用echo命令将line变量的内容通过管道传递给sed命令。sed命令中的替换表达式`s/ /\\n/g`将行中的空格替换为换行符,并将结果保存到new_line变量中。4. `echo "$new_line"`打印new_line变量的内容,即替换后的行。5. `done < input.txt`将input.txt文件作为循环的输入。运行脚本后,将会输出替换后的行,每个单词之间由换行符分割。注意:这个脚本将会替换所有的空格,包括单词中间的空格。如果你只想替换行首和行尾的空格,可以修改sed命令的替换表达式为`s/^ //; s/ $//; s/ /\\n/g`,其中`s/^ //`代表行首的空格,`s/ $//`代表行尾的空格。2年前 -
要将 Linux 命令的输出行写入脚本中的变量,并且将换行符替换为空格,可以使用以下方法:
1. 使用命令替换
通过将命令的输出赋值给变量,然后使用命令替换来删除换行符。以下是示例代码:
“`
output=$(command)
output=${output//$’\n’/ }
“`解释:
– `$(command)` 将命令执行的输出赋值给变量 `output`。
– `${output//$’\n’/ }` 使用命令替换将变量 `output` 中的换行符 `$’\n’` 替换为空格。2. 使用 `tr` 命令
`tr` 命令用于转换、删除、压缩字符。我们可以使用它将换行符转换为空格。以下是示例代码:
“`
output=$(command | tr ‘\n’ ‘ ‘)
“`解释:
– `command` 代表要执行的命令。
– `command | tr ‘\n’ ‘ ‘` 使用管道将命令的输出传递给 `tr` 命令,将换行符 `\n` 替换为空格。3. 使用 `awk` 命令
`awk` 是一种文本处理工具,可以用于对输入进行分析和处理。我们可以使用它将换行符替换为空格。以下是示例代码:
“`
output=$(command | awk ‘ORS=” “‘)
“`解释:
– `command` 代表要执行的命令。
– `command | awk ‘ORS=” “‘` 使用管道将命令的输出传递给 `awk` 命令,其中 `ORS=” “` 将输出记录分隔符设为一个空格。4. 使用 `sed` 命令
`sed` 是一种流编辑器,用于对文本进行转换和编辑。我们可以使用它将换行符替换为空格。以下是示例代码:
“`
output=$(command | sed -e ‘:a’ -e ‘N’ -e ‘$!ba’ -e ‘s/\n/ /g’)
“`解释:
– `command` 代表要执行的命令。
– `command | sed -e ‘:a’ -e ‘N’ -e ‘$!ba’ -e ‘s/\n/ /g’` 使用管道将命令的输出传递给 `sed` 命令,其中 `-e` 参数表示后面跟着的是 `sed` 的脚本,`'{:a;N;$!ba;s/\n/ /g}’` 是 `sed` 的脚本,用于将换行符替换为空格。使用上述方法可以将 Linux 命令的输出行写入脚本中的变量,并且将换行符替换为空格。你可以根据你的需求选择其中一种方法来实现。
2年前