Linux shell命令将文本数据从一个文件复制到另一个

标签 linux shell text command

file_1 内容:
aaa 111 222 333
bbb 444 555 666
抄送 777 888 999

file_2 内容:
滴滴滴

好吧

我如何只将部分文本从 file_1 复制到 file_2
这样 file_2 就会变成:

国内长途电话 111 222 333
eee 444 555 666
777 888 999

最佳答案

用 awk 试试:

awk 'NR==FNR{a[FNR]=$2FS$3FS$4;next} {print $0, a[FNR]}' file_1 file_2

解释:

NR是当前输入行,FNR是当前文件中的输入行数,可以通过

看到
$ awk '{print NR,FNR}' file_1 file_2
1 1
2 2
3 3
4 1
5 2
6 3

因此,条件 NR==FNR 仅在读取第一个文件时为真,即列 $2$3、和 $4 保存在 a[FNR] 中。读取 file_1 后,条件 NR==FNR 变为假, block {print $0, a[FNR]} 被执行,其中 $0file_2 中的整行。

关于Linux shell命令将文本数据从一个文件复制到另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33730871/

相关文章:

python - 如何在 linux 上通过 python + stem 获取 Tor 中继信息?

linux - namerefs 和管道进入 bash

mongodb - Mongodb 中的文本搜索不起作用

java - 在字符串列表中搜索

linux - sed:如何删除与包含正斜杠的模式匹配的行?

linux - 为基于 Linux 的操作系统包创建 'graphical' 命令行安装

linux - 如何检查设备的文件系统类型?

bash - 关于“ls | 的奇怪行为” while read"在 shell 脚本中使用 ffmpeg

bash - 如何终止从特定目录运行的所有进程?

php - 如何使用 php 搜索文本 if ($text contains "World")