Shell 如何将.txt文件的内容逐行附加到另一个.txt文件中?
因此,我有一个包含此内容的1.txt文件Shell 如何将.txt文件的内容逐行附加到另一个.txt文件中?,shell,Shell,因此,我有一个包含此内容的1.txt文件 1.1.1.1/0 2.2.2.2/0 9.9.9.9/0 我想将它们附加到一个2.txt文件中,以便如下所示: ...... 1.1.1.1/0 2.2.2.2/0 9.9.9.9/0 我应该怎么做?简单的方法是使用命令替换将file1重定向到printf“%s\n”,并将结果重定向到file2。例如,假设: $ cat file1.txt 1.1.1.1/0 2.2.2.2/0 9.9.9.9/0 您可以使用一个(到Truncate/创建一个新
1.1.1.1/0 2.2.2.2/0 9.9.9.9/0
我想将它们附加到一个2.txt文件中,以便如下所示:
......
1.1.1.1/0
2.2.2.2/0
9.9.9.9/0
我应该怎么做?简单的方法是使用命令替换将
file1
重定向到printf“%s\n”
,并将结果重定向到file2
。例如,假设:
$ cat file1.txt
1.1.1.1/0 2.2.2.2/0 9.9.9.9/0
您可以使用一个
(到Truncate/创建一个新的文件2.txt
)创建您想要的文件2.txt
,以将输出重定向到文件2.txt
,但是如果您想要将附加到文件2.txt
的原始内容,请使用
,例如:
$ printf "%s\n" $(<file1.txt) >>file2.txt
(这通常被称为printf技巧,其中printf“%s\n”
将依赖单词拆分将列表拆分为与列表中相同数量的新行分隔的单个单词。它还有许多其他用途。请注意,如果您的行数超过了shell可以作为参数保存的行数,如果我正确回忆是32767,这可能不起作用)
另一种更标准的方法是使用tr
将空格
翻译成'\n'
,例如
$ tr ' ' '\n' < file1.txt >> file2.txt
(与创建/附加/>>
上的注释相同)
您也可以使用sed
执行相同的操作,例如:
$ sed 's/[ ]/\n/g' file1.txt >> file2.txt
sed
的好处是允许您控制地址之间任意数量空格的替换。例如,如果地址之间有一些可变数量的空格或制表符,您可以使用sed
as来处理:
$ sed 's/[ \t][ \t]*/\n/g' file1.txt >> file2.txt
试试看,知道
tr
和sed
是更健壮的解决方案,但是printf技巧也可以派上用场。简单的方法是使用命令替换将file1
重定向到printf“%s\n”
,并将结果重定向到file2
。例如,假设:
$ cat file1.txt
1.1.1.1/0 2.2.2.2/0 9.9.9.9/0
您可以使用一个
(到Truncate/创建一个新的文件2.txt
)创建您想要的文件2.txt
,以将输出重定向到文件2.txt
,但是如果您想要将附加到文件2.txt
的原始内容,请使用
,例如:
$ printf "%s\n" $(<file1.txt) >>file2.txt
(这通常被称为printf技巧,其中printf“%s\n”
将依赖单词拆分将列表拆分为与列表中相同数量的新行分隔的单个单词。它还有许多其他用途。请注意,如果您的行数超过了shell可以作为参数保存的行数,如果我正确回忆是32767,这可能不起作用)
另一种更标准的方法是使用tr
将空格
翻译成'\n'
,例如
$ tr ' ' '\n' < file1.txt >> file2.txt
(与创建/附加/>>
上的注释相同)
您也可以使用sed
执行相同的操作,例如:
$ sed 's/[ ]/\n/g' file1.txt >> file2.txt
sed
的好处是允许您控制地址之间任意数量空格的替换。例如,如果地址之间有一些可变数量的空格或制表符,您可以使用sed
as来处理:
$ sed 's/[ \t][ \t]*/\n/g' file1.txt >> file2.txt
试试看,知道
tr
和sed
是更健壮的解决方案,但是printf技巧也可以派上用场。你想用换行符替换空格吗?比如@BenjaminW。指出,vim
中的:%s/\r/g
将导致换行符替换空格。然后,您可以执行cat1.txt>>2.txt
以换行符替换空格?如@BenjaminW。指出,vim
中的:%s/\r/g
将导致换行符替换空格。然后,您可以执行cat1.txt>>2.txt
您将需要>file2.txt
,因为OP特别要求append.OOh好捕获!更新。非常感谢大家。值得一提的是,tr-s'[:blank:]['\n'
可以与上一个sed示例做相同的操作。您需要>file2.txt
,因为OP特别要求append.OOh很好!更新。非常感谢大家。可能值得一提的是,tr-s'[:blank:]['\n'
可以完成与上一个sed示例相同的操作。