从文件 X 和 Y 复制内容以创建文件 XY 但 XY 内容全部为小写

1 dd files cat

从文件X和文件复制内容Y以创建一个XY所有字母均为小写的新文件的正确命令是什么?

Dan*_*i_l 10

使用的组合cattr

cat FILEX FILEY | tr '[:upper:]' '[:lower:]' > FILEXY

  • @muru 在我看来,`< LIST_OF_FILES` 不适用于多个文件(仅在特殊 shell 中)。你能举个例子你的意思吗? (2认同)
  • @cas 一点也不。*某些*使用 cat 是无用的。特别是,`cat | foo` 和 `cat 文件 | foo` 没用,应该分别替换为 `foo` 和 `< file foo`。但并非所有人都是。如果要连接文件,请使用 `cat`。 (2认同)

Byt*_*der 5

使用的组合catdd

cat LIST_OF_FILES | dd of=OUTPUT_FILE conv=lcase
Run Code Online (Sandbox Code Playgroud)

一个例子:

$ cat file1.txt 
I am File 1.

$ cat file2.txt 
Here is File 2!

$ cat file1.txt file2.txt | dd of=file12.txt conv=lcase
0+1 records in
0+1 records out
29 bytes (29 B) copied, 0,000301417 s, 96,2 kB/s

$ cat file12.txt 
i am file 1.
here is file 2!
Run Code Online (Sandbox Code Playgroud)

  • 请注意,`dd` 仅适用于 ASCII 字母。`tr '[:upper:]' '[:lower:]'` 可以处理任何字母,除了 GNU 实现不能处理多字节字符。GNU `awk` 的 `tolower()` 函数或 `s/.*/\L&/g` 在 GNU `sed` 中都可以工作。 (5认同)
  • @muru,`dd` 只支持一个 `if=file` 参数。使用`zsh`,你可以做`dd < file1 < file2`,但那是`zsh` 特定的。 (3认同)