這是名單上有,我想它顯示爲第二個(刪除逗號和第二個字打破之前行)擊排序逗號和字符串
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
非常感謝布魯! –