我和这里的问题差不多.
我有一个包含aa ab aa ac aa ad等的数组.现在我想从这个数组中选择所有独特的元素.认为,这将是简单的用sort | uniq或sort -u因为他们在其他问题中提到,但没有在数组中改变...的代码是:
echo `echo "${ids[@]}" | sort | uniq`
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我想一个文本用逗号分开,没有空间 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中实现这一目标?
我如何从变量中读取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) 如何在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)
在每种情况下,它对待one和two作为命令:(
我正在使用ec2实例@ ubuntu.我试图从我的AMI启动一个新实例后自动执行"git pull".repo dir已经在我的AMI中,我需要的只是更新回购.
我现在正在做的是我把"git pull origin master"放在rc.local中....但它不起作用....
我正在尝试从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) 我在终端上写道:
arr=(1 2 3)
for x in $arr; do
echo $x
done
Run Code Online (Sandbox Code Playgroud)
它只打印“ 1”。为什么不打印1 2 3?
我在 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
我是一个新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