Bash 如何将:添加到文件中的一行
我有一个包含多行的文件,但我想添加:以隔开部分。例如我有Bash 如何将:添加到文件中的一行,bash,Bash,我有一个包含多行的文件,但我想添加:以隔开部分。例如我有 Last Name First Name User ID email Smith John 123456789 johnsmith@gmail.com 我只想在第一行中加上四类信息,比如 Last Name : First Name : User ID : email Smith John 123456789 johnsmith@gmail.com 我知道你可以直接编辑文件,但那太简单了。有没有一种更有效的方法可以用一行代码来实现这一
Last Name First Name User ID email
Smith John 123456789 johnsmith@gmail.com
我只想在第一行中加上四类信息,比如
Last Name : First Name : User ID : email
Smith John 123456789 johnsmith@gmail.com
我知道你可以直接编辑文件,但那太简单了。有没有一种更有效的方法可以用一行代码来实现这一点?要将冒号添加到第一行,并且只添加到第一行:
$ sed -r '1 s/([^ ]+ ){2}/&: /g' file
Last Name : First Name : User ID : email
Smith John 123456789 johnsmith@gmail.com
要进行这些更改并将文件保存到位,请使用sed的-i
选项
sed -ir '1 s/([^ ]+ ){2}/&: /g' file
工作原理
这将选择扩展正则表达式语法-r
开头的1s/([^]+){2}/&:/g
选择第1行。替换命令的形式为1
,其中s/old/new/
下面是两个单词和空格:old
。([^]+){2}
这里是匹配的,新的
,后跟冒号和空格。最后一个和
命令sed在线重复执行此操作g
sed -i '' -E '1 s/([^ ][^ ]* ){2}/&: /g' file
谢谢你,约翰。我将在5分钟内接受答案,这是我一直在努力有效地完成的。如果我想偶然将它们添加到整个文件中,该怎么办?@MarcusBurkhart删除
1
,替换将应用于所有行: