所以我有一個文本檔案的選擇,所有這些檔案都在一行上,我需要一種方法來在每個數字之后將行分隔成多行。
此刻我有這樣的事情
a 111111b 222c 3d 444444
我需要一種方法來做到這一點
a 11111
b 222
c 3
d 444444
我一直在嘗試用正則運算式創建一個 gawk,但我不知道有什么方法可以讓它作業。(我對shell相當陌生)
uj5u.com熱心網友回復:
輕松與sed。
$: cat file
a 51661b 99595c 65652d 51515
$: sed -E 's/([a-z] [0-9] )\n*/\1\n/g' file
a 51661
b 99595
c 65652
d 51515
很容易awk。
$: awk '{ print gensub("([a-z] [0-9] )\n*", "\\1\n", "g") }' file
a 51661
b 99595
c 65652
d 51515
甚至可以只使用 bash 內置插件......但不要......
while read -r line
do while [[ "$line" =~ [a-z]\ [0-9] ]]
do printf "%s\n" "$BASH_REMATCH"
line=${line#$BASH_REMATCH}
done
done < file
a 51661
b 99595
c 65652
d 51515
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/520797.html
標籤:重击壳
下一篇:bash陣列轉換成字串模式
