这是名单上有,我想它显示为第二个(删除逗号和第二个字打破之前行)击排序逗号和字符串
jkdlfid
ljidklf,
kdjfhda,kdospad,kfmduaj,
hello
lkoplkj
想得到的结果是:
jkdlfid
ljidklf
kdjfhda
kdospad
kfmduaj
hello
lkoplkj
是否有任何grep命令?为了清除我想在逗号前打破行,删除逗号然后打破行。
这是名单上有,我想它显示为第二个(删除逗号和第二个字打破之前行)击排序逗号和字符串
jkdlfid
ljidklf,
kdjfhda,kdospad,kfmduaj,
hello
lkoplkj
想得到的结果是:
jkdlfid
ljidklf
kdjfhda
kdospad
kfmduaj
hello
lkoplkj
是否有任何grep命令?为了清除我想在逗号前打破行,删除逗号然后打破行。
下面将做的伎俩:
grep -o '[^,]*' file
的想法是匹配什么比逗号其他( [^,]
否定字符类),零次或多次。但是,我会亲自使用;
grep -Eo '[^,]+' file
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
您可以使用tr命令这样做 我假设你的输入是test.txt的
tr -cs "[:alpha:]" "\n" < test.txt
由子取下第一和最后一个逗号,然后更换两个逗号与RS新线之间。
awk'{sub(/f,/,f"")sub(/j,/,j"")}{gsub(/,/,RS)}1' file
jkdlfid
ljidklf
kdjfhda
kdospad
kfmduaj
hello
lkoplkj
您可以执行'grep -Eo'[^,] +'file'。顺便说一下,我认为没有关系排序你的问题! – blackSmith
@blackSmith我认为你可以把评论作为答案... – Kent
非常感谢布鲁! –