linux标准输出到数组维持每行作为一个元素
时间: 2024-05-07 16:20:56 浏览: 8
你可以使用`readarray`命令将标准输入的每一行存储到数组的一个元素中。下面是一个简单的示例:
```bash
#!/bin/bash
# 定义一个数组
declare -a lines
# 从标准输入读取每一行,并将其存储到数组中
readarray -t lines
# 遍历数组并输出每个元素
for line in "${lines[@]}"
do
echo "${line}"
done
```
这里使用了`readarray`命令将标准输入读取到数组`lines`中,并使用`-t`选项将换行符从每个元素中删除。最后,使用循环遍历数组并输出每个元素。你可以通过重定向将任何文件的内容发送到脚本,例如:
```bash
./script.sh < input.txt
```
其中`input.txt`是要读取的文件。
相关问题
linux标准输出在包含空格的情况下,转化为数组维持每行作为一个元素
可以使用`awk`命令来实现这个功能。假设你有一个包含空格的文件`test.txt`,可以使用以下命令将每一行转化为一个数组元素:
```
awk '{a[NR]=$0}END{for(i=1;i<=NR;i++) print a[i]}' test.txt
```
这个命令的作用是将每一行保存在数组`a`的一个元素中,然后在处理完整个文件后,遍历数组`a`并输出每个元素。这样就可以将每一行作为一个数组元素来处理了。
linux将标准输出到一个变量
在Linux中,可以使用反引号或$()将命令输出的结果赋值给变量。例如,将`ls`命令的输出结果保存到变量中:
```
output=`ls`
```
或者
```
output=$(ls)
```
此时,变量`output`将包含`ls`命令的输出结果。如果想将标准输出重定向到一个变量,可以使用命令替换操作符`$()`,例如:
```
var=$(echo "Hello World")
```
此时,`var`变量将包含字符串"Hello World"。