Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何将命令的输出赋值到数组中?

如何将命令的输出赋值到数组中?
EN

Stack Overflow用户
提问于 2012-02-26 00:25:34
回答 2查看 102.1K关注 0票数 95

我需要将grep的结果赋值给一个数组...例如

代码语言:javascript
代码运行次数:0
复制
grep -n "search term" file.txt | sed 's/:.*//'

这导致了一串带有行号的行,在这些行中找到了搜索词。

代码语言:javascript
代码运行次数:0
复制
1
3
12
19

将它们分配给bash数组的最简单方法是什么?如果我简单地将它们赋给一个变量,它们就会变成一个空格分隔的字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-26 01:07:26

要将命令的输出赋值给数组,需要在数组赋值中使用命令替换。对于通用命令command,如下所示:

代码语言:javascript
代码运行次数:0
复制
arr=( $(command) )

在该操作的示例中,这将是:

代码语言:javascript
代码运行次数:0
复制
arr=($(grep -n "search term" file.txt | sed 's/:.*//'))

内部$()运行命令,而外部()使输出为数组。这样做的问题是,当命令的输出包含空格时,它将无法工作。要处理此问题,可以将IFS设置为\n

代码语言:javascript
代码运行次数:0
复制
IFS=$'\n' arr=($(grep -n "search term" file.txt | sed 's/:.*//'))

您还可以通过对数组的每个元素执行扩展来减少对sed的需求:

代码语言:javascript
代码运行次数:0
复制
arr=($(grep -n "search term" file.txt))
arr=("${arr[@]%%:*}")
票数 156
EN

Stack Overflow用户

发布于 2012-02-26 00:45:36

在bash.中很容易遍历空格分隔的字符串

代码语言:javascript
代码运行次数:0
复制
# save the ouput
output=$(grep -n "search term" file.txt | sed 's/:.*//')

# iterating by for.
for x in $output; do echo $x; done;

# awk
echo $output | awk '{for(i=1;i<=NF;i++) print $i;}'

# convert to an array
ar=($output)
echo ${ar[3]} # echos 4th element

如果您考虑在文件名中使用空格,请使用find . -printf "\"%p\"\n"

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9449417

复制
相关文章
如何将 Linux 命令输出重定向到文件?
在Linux系统中,命令行是非常强大和灵活的工具。它允许我们执行各种任务和操作,包括将命令的输出保存到文件中。本文将介绍如何使用重定向操作符将Linux命令的输出导入到文件中,并列举尽可能多的命令示例。
网络技术联盟站
2023/07/14
1.7K0
如何将 Linux 命令输出重定向到文件?
如何将 Linux 命令输出重定向到文件?
在Linux系统中,命令行是非常强大和灵活的工具。它允许我们执行各种任务和操作,包括将命令的输出保存到文件中。本文将介绍如何使用重定向操作符将Linux命令的输出导入到文件中,并列举尽可能多的命令示例。
网络技术联盟站
2023/08/03
1.9K0
如何将 Linux 命令输出重定向到文件?
js把对象push到数组中_java数组可以赋值给数组吗
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说js把对象push到数组中_java数组可以赋值给数组吗,希望能够帮助大家进步!!!
Java架构师必看
2022/08/26
12.2K0
js把对象push到数组中_java数组可以赋值给数组吗
java中数组输出_java数组输出方法
1 for(inta:array)2 System.out.println(a);
全栈程序员站长
2022/11/10
2.5K0
JS中数组解构赋值4
//什么是数组的解构赋值? //es6新增的 //注意点: /*let arr=[1,3,5]; //let a=arr[0]; //let b=arr[1]; //let c
贵哥的编程之路
2020/10/28
11K0
JS中数组解构赋值4
linux如何将输出重定向到文件和标准输出
原文链接:https://rumenz.com/rumenbiji/linux-file-stdin-stdout.html
入门笔记
2021/11/26
5.1K0
linux如何将输出重定向到文件和标准输出
调用ls -al > rumenz.txt会将来自该命令的任何输出重定向到指定的文件,有没有办法将输出重定向到文件并将其显示在标准输出上? > ls -al > rumenz.txt 上面的命令执行后,数据被输入到rumenz.txt文件,屏幕没有任何输出,如果既想输入到文件又想输入到屏幕,请使用如下的方法. 使用tee 如果您只关心标准输出 > ls -al | tee rumenz.txt 如果要包含 stderr,请执行以下操作,会覆盖之前的数据 > ls -al 2>&1 | tee rumen
入门笔记
2022/06/02
5.4K0
解构赋值的作用_数组解构赋值
数组解构是非常简单简洁的,在赋值表达式的左侧使用数组字面量,数组字面量中的每个变量名称映射为解构数组的相同索引项
全栈程序员站长
2022/11/03
3.8K0
java数组如何赋值_java数组如何赋值
Java 语言中数组必须先初始化,然后才可以使用。所谓初始化,就是为数组的数组元素分配内存空间,并为每个数组元素赋初始值。
全栈程序员站长
2022/09/13
4K0
java数组如何赋值_java数组如何赋值
thinkphp模板中数组的输出
$this->assign('design_img',$design_img); //thinkphp 一维数组输出 <foreach name="design_img" item="vo"> <input type="text" name="design_img[]" value="{$vo}" /> </foreach> //二维数组 <volist name="design_img" id="design_img"> {$design_img.name} </volist> //多维数
PM吃瓜
2019/08/12
2.3K0
java输出数组的方法_java怎样输出数组中的所有元素
调用Array.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开
全栈程序员站长
2022/11/18
4.7K0
java中输出数组内容的函数,并将数组内容作为参数_数组的逆序输出
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/08
2.8K0
Java中数组的输入输出
调用Array.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开
全栈程序员站长
2022/08/31
1.4K0
java中输出数组元素的方法[通俗易懂]
Array.toString(要输出的数组名): 返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开。 方法三:
全栈程序员站长
2022/11/07
2.7K0
Postgresql中plpgsql数组的赋值与取值分析
(为什么进入BLOCK每次都要走一遍赋初值流程?哪里决定的哪些变量需要赋值?《Postgresql源码(79)plpgsql中多层调用时参数传递关键点分析(pl参数)》:问题五)
mingjie
2022/10/28
1.7K0
VBA中数组、集合和字典(二)——对数组变量的赋值
上次我们对比学习了一下ExcelVBA中数组、集合和字典的概念和声明语法,我个人觉得在声明部分,三者的区别还是挺大的。下面我们一块学习一下赋值方面的知识点,因为内容较多,我们今天就先学习一下给数组变量赋值的内容
用户8870853
2021/07/27
7K0
Java数组赋值
String [] word = {"hello", "world", "java"}; String [] dest = new String[3]; dest = words; words[0] = "nihao"; for(String t: dest){ System.out.println(t); } String [] dest2 = {"12","23","
一灰灰blog
2018/02/06
2.1K0
数组解构赋值
倘若A代表人生的成功,那么公式是:A =X+Y+Z。X是工作,Y是游戏,z是保持缄默。——(美)爱因斯坦 我们以前从一个数组中获取第一项,可能是如下写法: let list = [1,2,3] let i = list[0] 有了解构赋值,可以如下写法: let list = [1,2,3] let [i] = list 如果稍微复杂点,例如下面这样从对象中取出来数组: let ruben = {hobby:['anime']} let favorite = ruben.hobby[0] 就可以写成
阿超
2022/08/17
1.4K0
VBA数组(三)数组赋值
大家好,上节介绍了在使用数组之前如何声明数组,本节就来介绍静态数组如何赋值。(动态数组会单独一节讲解)
无言之月
2019/10/13
12.4K0
点击加载更多

相似问题

来自ksh中命令输出的数组赋值

11

如何将命令的输出赋值给变量?

31

如何将命令的输出存储到expect脚本中的数组中

14

如何将命令的输出赋值给Makefile变量

82

如何将“比较”命令的输出赋值给变量

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档