在我的程序中,我尝试为一个文件设置列标题,我将在整个脚本中添加该文件。
我用来创建标题的代码行是:
printf '%-10s' "csci" "csc" "Line #" "File Name" > "$1 3.txt"这就像我想要的那样创建了标题,但是当我添加下一行时,它会被添加到该行的末尾,而不是下一行。
我一直在尝试在标题创建行中添加一个新行,以便添加的下一行将是空行,但我所有添加新行的尝试都得到了奇怪的结果(或者我不想要的结果)。
我尝试像这样添加\n:'%-10s\n',但这只会使我的标题显示在单独的行上(这是我所期望的,但无论如何都必须尝试这样做)。
然后我尝试了:printf '%-10s' "csci" "csc" "Line #" "File Name" "\n"> "$1 3.txt",但这只打印出了\n,实际上没有给我换行符。
那么,如果我的问题现在还不明显,我怎么才能在其中换行呢?
发布于 2012-09-08 00:01:23
在打印列之后添加echo或printf语句,以便添加新行:
(printf '%-10s' "csci" "csc" "Line #" "File Name"; echo) > "$1 3.txt"
# or
(printf '%-10s' "csci" "csc" "Line #" "File Name"; printf '\n') > "$1 3.txt"或者为printf定义整行,并在末尾添加\n:
printf '%-10s %-10s %-10s %-10s\n' "csci" "csc" "Line #" "File Name" > "$1 3.txt"在Bash上,这也应该有效,尽管它会在新行的末尾添加一些空格:
printf '%-10s' "csci" "csc" "Line #" "File Name" $'\n' > "$1 3.txt"发布于 2012-09-08 00:00:08
之后再追加它。
echo >> "$1 3.txt"https://stackoverflow.com/questions/12321598
复制相似问题