Bash - stdir 单词到文件

标签 bash variables append stdin

我试图将整个用户输入存储在 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/

相关文章:

variables - 使用文本框输入获取值输出

linux - Python3 - 从文件中删除最后 (n) 行并 append 新数据

javascript - Jquery 追加 img 和 a

bash - 循环脚本只执行一次 - Bash

regex - BASH:如何将变量放入正则表达式中?

linux - 如何将函数名称显示到函数本身

javascript - 单击以删除父 div

bash - 如何从 git bash 使用命令行 Visual Studio 编译器?

python - 在类里面创建列表的更好方法?

iphone - 将变量发送到添加的 subview View Controller