我试图将整个用户输入存储在 bash 变量( append 变量)中。 然后对它们进行排序等等。 问题是对于输入 f.e.:
sdsd fff sss
asdasds
它创建此输出:
fff
sdsd
sssasdasds
预期输出是:
asdasds
fff
sdsd
sss
代码如下:
content=''
while read line
do
content+=$(echo "$line")
done
result=`echo "$content" | sed -r 's/[^a-zA-Z ]+/ /g' | tr '[:upper:]' '[:lower:]' | tr ' ' '\n' | sort -u | sed '/^$/d' | sed 's/[^[:alpha:]]/\n/g'`
echo "$result" >> "$dictionary"
最佳答案
追加时没有提供空格。
content+=$(echo "$line")
您需要确保旧值和新值之间有一个空格。
content+=" $line"
(正如 @gniourf_gniourf 正确指出的那样,不需要 echo
。)
关于Bash - stdir 单词到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26868929/