echo " Student1 " > log1.txt
echo " Marks " > log2.txt
echo " Percentage " > log3.txt
cat log1.txt log2.txt log3.txt > final.txt
Student1
Marks
Percentage
这给了我上面的输出,但是我需要像下面一行打印输出。请帮帮忙?
Student1 Marks Percentage
答案 0 :(得分:2)
由于您可以方便地在文件中添加尾随空格:
{ cat log1.txt log2.txt log3.txt | tr -d \\n; echo; }
会做得很好。尾随回显会添加一个尾随的换行符,您可能想要也可能不想要。或者您可以使用awk,它很好地省略了log3.txt上的尾随空格(如果文件实际上没有尾随空格,则添加空格):
cat log[123].txt | awk '{$1=$1}1' RS= OFS=' '
答案 1 :(得分:2)
如果你不关心空白区域,那就是paste
发明的工作:
$ paste log?.txt
Student1 Marks Percentage
如果您需要在每个字段之间只有一个空格而没有前导空格:
$ echo $(cat log?.txt)
Student1 Marks Percentage
$ echo $(paste log?.txt)
Student1 Marks Percentage
$ awk '{ORS=(FILENAME==ARGV[ARGC-1]?RS:FS); $1=$1}1' log?.txt
Student1 Marks Percentage
或使用GNU awk for ARGIND:
$ awk '{ORS=(ARGIND<(ARGC-1)?FS:RS); $1=$1}1' log?.txt
Student1 Marks Percentage
这看起来像尝试为一些可怕的文本处理shell脚本创建标题行,但是 - 如果是这样,我强烈建议您停下来并询问方向,以便我们可以向您展示如何编写整个内容在awk。 Shell是一种环境,通过该工具可以使用一种语言对这些工具进行排序,这就是所有工具。 shell调用操作文本的工具是awk。