Linux 从终端创建多行文件时如何缩进?
因此,我需要一个命令使输出如下所示:Linux 从终端创建多行文件时如何缩进?,linux,bash,ubuntu,Linux,Bash,Ubuntu,因此,我需要一个命令使输出如下所示: [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] url = ssh://git@github.com/user/address.git f
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://git@github.com/user/address.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
我试过以下方法
printf "[core]\n repositoryformatversion = 0\n filemode = true\n bare = false\n logallrefupdates = true\n logallrefupdates = true\n[remote "origin"]\n url = ssh://git@github.com/user/address.git\n fetch = +refs/heads/*:refs/remotes/origin/*\n[branch "master"]\n remote = origin\n merge = refs/heads/master" > config
但是它创建了一个包含这些内容的文件
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
logallrefupdates = true
[remote origin]
url = ssh://git@github.com/user/address.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch master]
remote = origin
merge = refs/heads/master
config='
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://git@github.com/user/address.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
'
printf '%s\n' "$config" > config
我如何才能使它以第一次声明的格式输出?在“\n”之后可以使用“\t”来创建选项卡。在“\n”之后可以使用“\t”来创建选项卡。根本不要使用
printf
。只需将here文档与cat
一起使用即可:
cat <<'EOF' > config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://git@github.com/user/address.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
EOF
根本不要使用
printf
。只需将here文档与cat
一起使用即可:
cat <<'EOF' > config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = ssh://git@github.com/user/address.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
EOF
你写的应该有用。也许您使用的是带有内置printf的非标准shell。或者您定义了printf的别名或函数。请创建不带缩进的文件,然后:
sed-E的/^[^[]/\t&/'file
saavedra29的答案有效您所写的应该有效。可能您使用的是带有内置printf的非标准shell。或者您定义了printf的别名或函数。创建文件时不带缩进,然后:sed-E's/^[^]/\t&/'file
saavedra29的答案有效。你能解释为什么这更好吗?我对TerminalPrimary是新手,它更可读。输入看起来像输出,而不是嵌入\n
转义序列来表示换行符。你能解释为什么这更好吗?我对TerminalPrimary是新手,它更可读。输入看起来像是ike输出,而不是嵌入\n
转义序列来表示换行符。