标签: words

Bash 脚本:在每个字母上拆分单词

如何拆分单词的字母,每个字母在单独的一行中?

例如,鉴于"StackOver" 我想看到

S
t
a
c
k
O
v
e
r
Run Code Online (Sandbox Code Playgroud)

我是 bash 新手,所以我不知道从哪里开始。

command-line split words

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

/usr/share/dict/words 中的单词从何而来?

/usr/share/dict/words包含很多单词。这个列表是如何生成的?它的内容在不同的 Unices 中是否相同?是否有任何标准规定它必须包含什么?

到目前为止,我所能找到的是,在 Ubuntu/Debian 上,列表来自wordlist包,但它们的描述没有提供关于列表是如何实际生成的线索。

dictionary words

16
推荐指数
1
解决办法
2万
查看次数

反向 grep 未找到所有匹配行

编辑:我把这个搞得太复杂了。这与反向 grep 无关。我仅使用 得到相同的结果grep -x -f stop.txt < in.txt。如果在停用词文件中who位于前面whose,则结果只是who. 当停用词文件中的顺序相反时,in.txt会找到 中的两行。我感觉我根本就不懂grep。


我无法让反向 grep 像我期望的那样工作,以便从文件中删除包含停用词的行。停用词的给出顺序会影响结果。

假设我有两个文件。输入文件in.txt

who
whose
Run Code Online (Sandbox Code Playgroud)

以及一个包含停用词列表的文件stop.txt

who
whose
Run Code Online (Sandbox Code Playgroud)

如果我in.txt使用反向 grep 搜索对 ​​中的停用词进行“过滤” stop.txt,我会得到:

$ grep -vx -f stop.txt < in.txt
whose
$
Run Code Online (Sandbox Code Playgroud)

仅当我更改stop.txt

whose
who
Run Code Online (Sandbox Code Playgroud)

我得到:

$ grep -vx -f stop.txt < in.txt
$
Run Code Online (Sandbox Code Playgroud)

我不明白为什么带有停用词的文件中的单词顺序很重要。

grep words

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

算术替换中的命令替换是否会拆分单词?

我好像从本站的评论中记得算术展开的内容可能是分词的,但是又找不到评论了。

考虑以下代码:

printf '%d\n' "$(($(sed -n '/my regex/{=;q;}' myfile)-1))"
Run Code Online (Sandbox Code Playgroud)

如果sed命令输出一个多位数字并且$IFS包含数字,那么在算术发生之前,命令替换是否会进行单词拆分?

(我已经使用额外的双引号进行了测试:

printf '%d\n' "$(("$(sed -n '/my regex/{=;q;}' myfile)"-1))"
Run Code Online (Sandbox Code Playgroud)

这不起作用。)


顺便说一句,上面的示例代码是我刚刚在 Stack Overflow 上发布的这个函数的简化形式的更改。

bash arithmetic words

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

谁负责 /usr/share/dict/words ?(发现诽谤)

我正在编写一个使用 /usr/share/dict/words 文件生成会话密钥的应用程序。

我震惊地发现文件中最令人震惊的种族诽谤——“N字”(不同的拼写)。

谁负责维护这个文件,为什么文件里会有这些文字?

filesystems files words

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

标签 统计

words ×5

arithmetic ×1

bash ×1

command-line ×1

dictionary ×1

files ×1

filesystems ×1

grep ×1

split ×1