linux复制多行内容命令
linux复制多行内容命令详细介绍
在 Linux 中复制多行内容主要分为两种场景:文件内多行内容复制到另一个文件,或终端中复制多行文本到剪贴板。以下是具体方法:
一、文件内多行内容复制到另一个文件
如果需要从文件中提取指定范围的多行内容(例如第 5 行到第 10 行)并复制到新文件,可以使用以下工具:
1.
sed 命令(推荐)
sed 是文本处理工具,-n 表示只输出匹配内容,'5,10p' 表示打印第 5 到第 10 行。
示例:将 file.txt 的第 5 到第 10 行复制到 newfile.txt
bash
file.txt newfile.txt
2.
awk 命令
NR 表示行号,NR>=5 && NR<=10 表示行号在 5 到 10 之间的行。
示例:同上
bash
file.txt newfile.txt
3.
head +
tail 组合(适合非连续行)
如果需要复制的行不连续(例如前 10 行中的后 5 行),可以组合使用 head(取前 N 行)和 tail(取后 M 行)。
示例:取 file.txt 前 10 行中的后 5 行(即第 6-10 行)
bash
file.txt newfile.txt
二、终端中复制多行文本到剪贴板
如果需要将终端中显示的多行内容复制到剪贴板(便于粘贴到其他程序),可以使用 xclip(Linux 通用)或 pbcopy(仅 macOS)。
1.
xclip(Linux)
需先安装 xclip(sudo apt install xclip),通过管道将内容传递给 xclip。
示例:将 file.txt 的全部内容复制到剪贴板
bash
file.txt xclip clipboard
2.
pbcopy(macOS)
macOS 内置工具,直接通过管道传递内容。
示例:将 file.txt 的第 5-10 行复制到剪贴板
bash
file.txt pbcopy
总结
- 文件间复制多行:优先用
sed或awk直接提取行范围。 - 复制到剪贴板:用
xclip(Linux)或pbcopy(macOS)配合文本处理命令(如cat、sed)。