在Linux中:如何以相同的顺序重复文件中的多行?
输入文件包含以下行:在Linux中:如何以相同的顺序重复文件中的多行?,linux,bash,text,Linux,Bash,Text,输入文件包含以下行: a b c 我希望输出为(n次): 我试过下面的命令,但它不能维持秩序 while read line; do for i in {1..4}; do echo "$line"; done; done < file 将seq与xargs一起使用: seq 2 | xargs -Inone cat file 将seq与xargs一起使用: seq 2 | xargs -Inone cat file 另一个解决办法可能是 #multicat count filen
a
b
c
我希望输出为(n次):
我试过下面的命令,但它不能维持秩序
while read line; do for i in {1..4}; do echo "$line"; done; done < file
将
seq
与xargs
一起使用:
seq 2 | xargs -Inone cat file
将
seq
与xargs
一起使用:
seq 2 | xargs -Inone cat file
另一个解决办法可能是
#multicat count filename(s)
multicat() {
local count=$1
shift
for((i=0;i < $count; i++)) {
cat "$@"
}
}
multicat 3 abc # outputs the "abc" file 3 times
#多点计数文件名
multicat(){
本地计数=$1
转移
对于((i=0;i<$count;i++){
猫“$@”
}
}
multicat 3 abc#输出“abc”文件3次
另一种解决方案可能是
#multicat count filename(s)
multicat() {
local count=$1
shift
for((i=0;i < $count; i++)) {
cat "$@"
}
}
multicat 3 abc # outputs the "abc" file 3 times
#多点计数文件名
multicat(){
本地计数=$1
转移
对于((i=0;i<$count;i++){
猫“$@”
}
}
multicat 3 abc#输出“abc”文件3次
printf
和大括号扩展
可用于将字符串重复N次,然后可将其作为输入传递给执行连接工作的cat
$ printf "file %.s" {1..4}
file file file file $
$ cat $(printf "file %.s" {1..4})
a
b
c
a
b
c
a
b
c
a
b
c
使用
perl
,如果文件小到足以满足整个内存需求
$ perl -0777 -ne 'print $_ x 2' file
a
b
c
a
b
c
printf
和brace expansion
可用于将字符串重复N次,然后可将其作为输入传递给执行连接任务的cat
$ printf "file %.s" {1..4}
file file file file $
$ cat $(printf "file %.s" {1..4})
a
b
c
a
b
c
a
b
c
a
b
c
使用
perl
,如果文件小到足以满足整个内存需求
$ perl -0777 -ne 'print $_ x 2' file
a
b
c
a
b
c
打印
文件
三次的小型解决方案:
cat $(yes file | head -n 3)
命令替换$()
扩展为cat文件
。
这只适用于没有空格的文件名。如果文件名包含空格或制表符,请设置
IFS=$'\n'
打印文件的小型解决方案
3次:
cat $(yes file | head -n 3)
命令替换$()
扩展为cat文件
。
这只适用于没有空格的文件名。如果文件名包含空格或制表符,请设置
IFS=$'\n'
简单地将文件追加n次,如循环中的cat file1>>file2
怎么样?简单地将文件追加n次,如循环中的cat file1>>file2
怎么样?不管seq
不是在所有系统上都可用,该解决方案都可以工作并解决问题。投票人能解释一下吗+1从我这里。不管seq
是否在所有系统上都可用,该解决方案都有效并解决了问题。投票人能解释一下吗+从我这里得到1。