Dom*_*que 3 unix linux awk command-line grep
我正在与一位同事打交道,他在整个 C# 解决方案中出现了大量复制/粘贴的拼写错误。
我不想在每个单独的文件上使用拼写检查器,而是想创建整个解决方案中所有单词的列表,在该列表上启动拼写检查器,并对找到的条目执行完整的“查找和替换”。
为了找到文件中的所有单词,我想过这样做:
grep -wo ".*" blabla.txt
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用:它不是显示每个找到的单词,而是显示找到单词的整行,例如:
this is OK
this is NOK
OK it is
NOK it is
Everything is OK
Run Code Online (Sandbox Code Playgroud)
当我期待类似的事情时:
this
is
OK
this
is
NOK
...
Run Code Online (Sandbox Code Playgroud)
一旦我有了一个文件的列表,我就可以开始处理find ./ -name "*.cs" -exec grep ... {} \; >>output_list并执行一些操作sort output_list | uniq以获得单个单词。
但首先要注意的是:因为grep -ow ".*"它不显示单词,而是显示整行,我该怎么做才能使用 UNIX/Linux 命令行显示文件中的所有单词?(我添加awk为标签,因为这可能是一个解决方案?但我当然不是awk向导:-))
在第一个答案后编辑:
tr确实似乎是要走的路。我可能只是简单地使用tr ' ' '\n',但有一个问题:我尝试了以下方法,但它不起作用:
find ./ -name "*.cs" -exec cat {} | tr ' ' '\n' >>/mnt/c/Temp_Folder\output.txt \;
Run Code Online (Sandbox Code Playgroud)
该命令给了我一个>答案(因为我在某个代码编辑器左右),我仍然做错了什么?
如何使用tr替换每个空格/制表符来换行:
tr '[[:blank:]]' '\n' <file
this
is
OK
this
is
NOK
OK
it
is
NOK
it
is
Everything
is
OK
Run Code Online (Sandbox Code Playgroud)
根据您编辑的问题,您可以find + tr在 shell 中使用此解决方案bash:
while IFS= read -rd '' f; do
tr ' ' '\n' < "$f"
done < <(find . -name '*.cs' -print0) >/mnt/c/Temp_Folder/output.txt
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
200 次 |
| 最近记录: |