输入文件包含以下行:
a
b
c
我希望输出为(n次):
a
b
c
a
b
c
我已经尝试过以下命令,但它没有维护顺序
while read line; do for i in {1..4}; do echo "$line"; done; done < file
但输出是
a
a
b
b
c
c
答案 0 :(得分:2)
将seq
与xargs
一起使用:
seq 2 | xargs -Inone cat file
答案 1 :(得分:1)
另一种解决方案可能是
#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
答案 2 :(得分:0)
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
答案 3 :(得分:0)
打印class User
def authenticated?(*p)
raise NotImplementedError, "IMPLEMENT ME IN #{self.class}##{__method__}"
end
end
class InternalUser < User
end
InternalUser.new.authenticated?('user', 'user@test.com')
#interface.rb:3:in `authenticated?': IMPLEMENT ME IN InternalUser#authenticated? (NotImplementedError)
3次的小型解决方案:
file
命令替换cat $(yes file | head -n 3)
扩展为$()
。
这仅适用于没有空格的文件名。如果您的文件名包含空格或制表符,请设置cat file file file
。