use*_*227 11 string bash shell sed
我有一个字符串列表,总是5个字符长.将每行的第一,第三和第五个字符(包括空格)转换为单个字符串的最佳方法是什么?
输入:
c c
8 8
4 4
3 3
1 1
4 4
9 9
8 | c
> 4
0 0
e | 5
6 | a
3 3
9 | c
b <
1 1
b | 0
d <
4 4
5 | 7
c c
> 3
. .
1 | c
o o
Run Code Online (Sandbox Code Playgroud)
输出:
c8431498 0e639b1bd45c .1o
c843149c405a3c 10 47c3.co
|> || |< | | > |
Run Code Online (Sandbox Code Playgroud)
我使用sed捕获组取得了一些成功,但忽略了尾随空格.
sed -e "s/^.*\(.\)$/\1/"
Run Code Online (Sandbox Code Playgroud)
编辑:澄清我需要包含空格,字符串包含一个点
使用GNU awk:
awk 'BEGIN{FS="";a="";b="";c="";}{a=a$1; b=b$3; c=c$5;}END{print a ORS c ORS b}' filename
Run Code Online (Sandbox Code Playgroud)
输出:
c8431498 0e639b1bd45c
c843149c405a3c 10 47c3
|> || |< |< | >
Run Code Online (Sandbox Code Playgroud)