这是我的列表,我希望它显示为第二个(删除逗号并在第二个单词之前中断行)
jkdlfid
ljidklf,
kdjfhda,kdospad,kfmduaj,
hello
lkoplkj
希望结果为:
jkdlfid
ljidklf
kdjfhda
kdospad
kfmduaj
hello
lkoplkj
这有没有grep命令?要清除我想在逗号之前打破行,删除逗号然后打破行。
答案 0 :(得分:2)
以下将解决这个问题:
grep -o '[^,]*' file
这个想法是匹配除逗号([^,]
否定字符类)以外的任何内容,零次或多次。但是,我个人会用;
grep -Eo '[^,]+' file
答案 1 :(得分:0)
您可以轻松tr
将逗号添加到换行符并删除任何产生的空行:
$ printf 'foo\nbar,baz,ban\nbay,bat\n' | tr ',' '\n' | grep -v '^$'
foo
bar
baz
ban
bay
bat
答案 2 :(得分:0)
<强> f.awk 强>
function emptyp(s) { # 1 if `s' consists of spaces and tabs
return s ~ /^[ \t]*$/
}
{
n = split($0, a, ",")
for (i=1; i<=n; i++)
if (!emptyp(a[i])) print a[i]
}
<强> f.example 强>
jkdlfid
ljidklf,
kdjfhda,kdospad,kfmduaj,
hello
lkoplkj
用法:
awk -f f.awk f.example
答案 3 :(得分:0)
您可以使用tr命令执行此操作 我假设你的输入是在test.txt
tr -cs "[:alpha:]" "\n" < test.txt
答案 4 :(得分:0)
按sub删除第一个和最后一个逗号,然后用RS new line替换两个逗号。
awk'{sub(/f,/,f"")sub(/j,/,j"")}{gsub(/,/,RS)}1' file
jkdlfid
ljidklf
kdjfhda
kdospad
kfmduaj
hello
lkoplkj