Pan*_*dya 25 command-line text-processing
我有一个名为“example”的简单文本文件。
使用终端命令读取: cat example
输出:
abc cdef ghi jk lmnopq rst uv wxyz
Run Code Online (Sandbox Code Playgroud)
我想转换(转换)为以下形式:(预期输出cat example)
abc
cdef
ghi
jk
lmnopq
rst
uv
wxyz
Run Code Online (Sandbox Code Playgroud)
如何通过命令行执行此操作?
(这只是一个示例文件,我想转换单词在垂直列中的位置)
ter*_*don 53
几个选择:
经典,使用tr:
tr ' ' '\n' < example
Run Code Online (Sandbox Code Playgroud)用 cut
cut -d ' ' --output-delimiter=$'\n' -f 1- example
Run Code Online (Sandbox Code Playgroud)用 sed
sed 's/ /\n/g' example
Run Code Online (Sandbox Code Playgroud)用 perl
perl -pe 's/ /\n/g' example
Run Code Online (Sandbox Code Playgroud)使用外壳
foo=$(cat example); echo -e ${foo// /\\n}
Run Code Online (Sandbox Code Playgroud)Avi*_*Raj 16
试试下面的命令
awk -v RS=" " '{print}' file
Run Code Online (Sandbox Code Playgroud)
或者
awk -v RS='[\n ]' '{print}' file
Run Code Online (Sandbox Code Playgroud)
例子:
$ awk -v RS=" " '{print}' example
abc
cdef
ghi
jk
lmnopq
rst
uv
wxyz
Run Code Online (Sandbox Code Playgroud)
解释:
RS(记录分隔符)是一个内置的 awk 变量。在第一个命令中,记录分隔符变量的值是空格。awk 会在找到空格时中断打印行。
在第二个命令中,赋予 RS 变量的值是空格或换行符。该命令消除了运行第一个命令时出现的额外空行。
sou*_* c. 10
你可以使用xargs,
cat example | xargs -n 1
Run Code Online (Sandbox Code Playgroud)
或更好
xargs -n 1 < example
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
95084 次 |
| 最近记录: |