linux - 在特定单词后复制并在特定单词后过去

标签 linux sed copy-paste

我想以简单的方式完成复制和粘贴任务。我有一个超过 3000 行的文件。我可以在 Linux 中做什么?

文本文件

#: Bib Field 111
where liblibrarian = "MAIN ENTRY--MEETING NAME";
update  marc_subfield_structure set liblibrarian = "TEMEL GİRİŞ--TOPLANTI ADI", libopac = 

#: Bib Sub 111 f
where liblibrarian = "Date of a work";
update  marc_subfield_structure set liblibrarian = "Eserin tarihi", libopac = 

#: Bib Sub 111 k
where liblibrarian = "Form subheading";
update  marc_subfield_structure set liblibrarian = "Alt başlık biçimlendir", libopac = 

#: Bib Sub 111 l
where liblibrarian = "Language of a work";
update  marc_subfield_structure set liblibrarian = "Eserin dili", libopac = 

#: Bib Sub 111 n
where liblibrarian = "Number of part/section/meeting";
update  marc_subfield_structure set liblibrarian = "Parça/bölüm/toplantı sayısı", libopac = 

我要

update  marc_subfield_structure set liblibrarian = "Toplantı yeri", libopac = "Toplantı yeri" where liblibrarian = "Location of meeting";
update  marc_subfield_structure set liblibrarian = "Relator kodu", libopac = "Relator kodu" where liblibrarian = "Relator code";
update  marc_subfield_structure set liblibrarian = "Eserin adı", libopac = "Eserin adı" where liblibrarian = "Title of a work";
update  marc_subfield_structure set liblibrarian = "Relator terim", libopac = "Relator terim" where liblibrarian = "Relator term";

最佳答案

也许您可以使用一些其他工具(例如 awk 或 sed)轻松地做到这一点。但我认为也可以通过以下方式完成:

  1. 通过以下命令创建一个仅包含“where librarian ..”部分的文件:

    grep 'where liblibrarian' <file> > first_file

  2. 创建一个仅包含“更新 marc_subfield_structure..”部分的文件:

    grep 'update marc_subfield_structure' <file> > second_file

  3. 现在您有两个文件,其中每一行都包含您想要构建的最终结果的一部分。因此,您只需使用以下命令按列粘贴它们(您可以根据需要调整分隔符)。

    paste second_file first_file | column -s $'\t' -t

因此最后一条命令将通过在行之间插入分隔符来粘贴行。

关于linux - 在特定单词后复制并在特定单词后过去,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32865102/

相关文章:

linux 搜索一个模式并打印它的计数

linux - 使用 shell 脚本替换文件中的标记

vim - 粘贴所选文本时,vim 如何保留寄存器的内容?

c - 使用来自 Ctrl+C 的 SIGINT

linux - docker-compose 找不到合适的配置文件

linux - 防止脚本因错误而停止

linux - Shell 脚本 - 检查参数上的数字是否唯一

sed - 如何全局替换不以特定模式开头的行中的字符串

linux 将字符串添加到特定行的开头

iphone - 如何从粘贴板中获取复制的图像?