Linux 使用shell格式化文本文件
我想使用shell命令格式化文本文件 文件内容如下:Linux 使用shell格式化文本文件,linux,shell,concatenation,Linux,Shell,Concatenation,我想使用shell命令格式化文本文件 文件内容如下: first_name:last_name:some_random_characters Jack:Brown:!@#xyz Mike:Spencer:234QWE Robert:Junior:^#2dsa ... 我希望输出像: JBrown:!@#xyz MSpencer:234QWE RJunior:^#2dsa ... 我尝试使用cat-d':'-f1 file.txt和cat-d':'-f2-3 file.txt, 但是我不知道
first_name:last_name:some_random_characters
Jack:Brown:!@#xyz
Mike:Spencer:234QWE
Robert:Junior:^#2dsa
...
我希望输出像:
JBrown:!@#xyz
MSpencer:234QWE
RJunior:^#2dsa
...
我尝试使用cat-d':'-f1 file.txt
和cat-d':'-f2-3 file.txt
,
但是我不知道如何将这些命令组合起来。与awk:
awk 'BEGIN{OFS=FS=":"}{print substr($1,1,1)$2, $3}' file.txt > outputfile.txt
上面说:
BEGIN{OFS=FS=“:”}
{print substr($1,1,1)$2,$3}
$ paste -d'\0' <(cut -c1 file) <(cut -d: -f2- file)
$paste-d'\0'我想你的意思是cut
,而不是cat
。你可以使用管道来组合命令——它们让你“缝合”上一个命令的输出,成为下一个命令的输入。例如,file1.txt | |。。。公元infinitum@MorganMLG:要删除前两行,我建议使用tail
。对于重新组合行的字段,也许awk
或sed
将是一个不错的选择。
$ paste -d'\0' <(cut -c1 file) <(cut -d: -f2- file)