我几乎尝试了所有东西,sed,awk,tr
,但是......
我试图输出包含此内容的文件
2079 May 19 13:37 temp.sh
1024 May 23 17:09 mirrad
478 May 26 14:48 unzip.sh
像这样
2079
May
19
13:37
.
.
.
因此,每个字符串将在变量中打印出来。
答案 0 :(得分:7)
使用xargs
xargs -n 1 <file
来自-n
页面的man
解释: -
-n max-args, --max-args=max-args
Use at most max-args arguments per command line. Fewer than
max-args arguments will be used if the size (see the -s
option) is exceeded, unless the -x option is given, in which
case xargs will exit.
将产生输出
#!/bin/bash
$ xargs -n1 <tmp.txt
2079
May
19
13:37
temp.sh
1024
May
23
17:09
mirrad
-n
值为2,它给出了
#!/bin/bash
$ xargs -n2 <tmp.txt
2079 May
19 13:37
temp.sh 1024
May 23
17:09 mirrad
答案 1 :(得分:3)
awk
awk 'BEGIN{RS=" "} 1' file
<强>输出强>
2079
May
19
13:37
temp.sh
1024
May
23
17:09
mirrad
478
May
26
14:48
unzip.sh
答案 2 :(得分:3)
另一个awk
$ awk -v OFS='\n' '{$1=$1}1' file
答案 3 :(得分:2)
我会继续回答这个问题,因为我用错误的重复问题对其进行了标记。
使用tr
:
echo "Mary had a little lamb" | tr ' ' '\n'
在上面的命令中,您使用换行符' '
替换'\n'
。
使用sed
:
echo "Mary had a little lamb" | sed 's/ /\n/g'
如果您想要将多个空格转换为单个换行符,请改用s/ */\n/g
。这是/
后跟两个空格,然后是*
。
答案 4 :(得分:2)
从文件中获取printf
的参数:
printf "%s\n" $(<file)
答案 5 :(得分:2)
只有一个cat
和tr
可以轻松完成此操作
cat input.txt|tr ' ' "\n"
或
编辑:
更好的一个,没有UUOC
tr ' ' "\n" < input.txt