相关疑难解决方法(0)

如何从Bash中的数组中获取唯一值?

我和这里的问题差不多.

我有一个包含aa ab aa ac aa ad等的数组.现在我想从这个数组中选择所有独特的元素.认为,这将是简单的用sort | uniqsort -u因为他们在其他问题中提到,但没有在数组中改变...的代码是:

echo `echo "${ids[@]}" | sort | uniq`
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

linux arrays bash unique

75
推荐指数
11
解决办法
7万
查看次数

将文件名读入数组

我想得到一个文件列表,然后将结果读入一个数组,其中每个数组元素对应一个文件名.这可能吗?

unix bash cygwin

61
推荐指数
2
解决办法
7万
查看次数

如何用逗号而不是空格分割列表

我想一个文本用逗号分开,没有空间 in for foo in list.假设我有一个CSV_File包含以下文本的CSV文件:

Hello,World,Questions,Answers,bash shell,script
...
Run Code Online (Sandbox Code Playgroud)

我使用下面的代码将它分成几个单词:

for word in $(cat CSV_File | sed -n 1'p' | tr ',' '\n')
do echo $word
done
Run Code Online (Sandbox Code Playgroud)

它打印:

Hello
World
Questions
Answers
bash
shell
script
Run Code Online (Sandbox Code Playgroud)

但我希望它用逗号分隔文本而不是空格:

Hello
World
Questions
Answers
bash shell
script
Run Code Online (Sandbox Code Playgroud)

我怎样才能在bash中实现这一目标?

linux csv bash shell split

43
推荐指数
6
解决办法
9万
查看次数

如何在while循环中"读取"变量

我如何从变量中读取while read line

例如:

the_list=$(..code..)

while read line
do
        echo $line

done < $the_list
Run Code Online (Sandbox Code Playgroud)

使用上面的代码给我错误:

./copy.sh: line 25: $the_list: ambiguous redirect
Run Code Online (Sandbox Code Playgroud)

variables bash while-loop

38
推荐指数
3
解决办法
9万
查看次数

如何在bash for循环中内联一个字符串数组?

如何在bash for循环中内联一个字符串数组?这有效:

array=(one two)
for i in ${array[*]};do echo $i; done
Run Code Online (Sandbox Code Playgroud)

但我想消除额外的局部变量.我尝试了许多似乎合理的变体,例如:

for i in ${("one" "two")[*]};do echo $i; done
Run Code Online (Sandbox Code Playgroud)

要么

for i in ${"one" "two"};do echo $i; done
Run Code Online (Sandbox Code Playgroud)

在每种情况下,它对待onetwo作为命令:(

bash

11
推荐指数
2
解决办法
5370
查看次数

我的服务器启动时如何自动执行"git pull"

我正在使用ec2实例@ ubuntu.我试图从我的AMI启动一个新实例后自动执行"git pull".repo dir已经在我的AMI中,我需要的只是更新回购.

我现在正在做的是我把"git pull origin master"放在rc.local中....但它不起作用....

git ubuntu amazon-ec2

6
推荐指数
1
解决办法
3237
查看次数

为什么bash只将第一个元素附加到数组

我正在尝试从stdin读取文件列表,每个文件由换行符分隔,但是我注意到只有第一个元素被附加到列表中.我注意到这只是输入两个字符串然后q.有谁能解释为什么?

files=()
read input

while [ "$input" != "q" ] ; 
do
    files+=( "$input" )
    read input
done

for f  in $files ; 
do
    echo "the list of files is:"
    echo "$f"
    echo "The length of files is ${#files} " #prints 1, even if 2+ are entered
done
Run Code Online (Sandbox Code Playgroud)

bash scripting

5
推荐指数
1
解决办法
2824
查看次数

为什么for-in循环无法显示我想要的内容?

我在终端上写道:

arr=(1 2 3)
for x in $arr; do
 echo $x
done
Run Code Online (Sandbox Code Playgroud)

它只打印“ 1”。为什么不打印1 2 3?

bash for-loop

5
推荐指数
1
解决办法
166
查看次数

如何在 bash 中迭代数组?

我在 bash 中写了一些脚本,但它不起作用。任何人都可以帮我解决这个问题吗?我在这里提供脚本:

#!/bin/bash
declare -a array=("red" "blue" "green" "yellow")

for (( i=0; i<${array[@]}; i++));
do
        echo "items: $i"
done
Run Code Online (Sandbox Code Playgroud)

我想遍历数组。因为每当我这样做时,我都会收到一条错误消息::: arr1.sh: 2: Syntax error: "("unexpected

arrays bash loops

1
推荐指数
1
解决办法
4535
查看次数

如何在bash中读取字符串数组

我是一个新bash学习者.我想知道,如何从标准输入中获取字符串列表?在取完所有字符串之后,我想将它们打印出来.

说输入如下:

Namibia
Nauru
Nepal
Netherlands
NewZealand
Nicaragua
Niger
Nigeria
NorthKorea
Norway
Run Code Online (Sandbox Code Playgroud)

输出应该是:

Namibia Nauru Nepal Netherlands NewZealand Nicaragua Niger Nigeria NorthKorea Norway
Run Code Online (Sandbox Code Playgroud)

我只能读取变量bash,然后可以像下面这样打印:

read a
echo "$a"
Run Code Online (Sandbox Code Playgroud)

请注意:

这个问题没有回答我的问题.它主要是遍历声明的数组.但我的情况是处理输入并在运行时追加数组以及检测EOF

arrays bash user-input input

0
推荐指数
1
解决办法
89
查看次数