Phi*_*ide 4 sed awk text-processing
我有一个由空格分隔的文本文件,如下所示。我需要重新排列列,以便第一列位于每行的末尾。
我有一个如何可以使用来完成的想法cut -d' ' f1,但我不知道是否有一种简单的方法awk或sed。
文本文件:
™? trade mark
?? information
??..?? left-right arrow..down-left arrow
??..?? right arrow curving left..left arrow curving right
?..? watch..hourglass done
?? keyboard
?? eject button
?..? fast-forward button..hourglass not done
??..?? pause button..record button
?? circled M
??..?? black small square..white small square
?? play button
?? reverse button
Run Code Online (Sandbox Code Playgroud)
希望符号列表跟随描述。
用 sed
sed 's/\([^ ]*\) *\(.*\)/\2 \1/' infile
Run Code Online (Sandbox Code Playgroud)
这\([^ ]*\)将匹配所有内容,直到看到非空格字符。
括号\(...\)用于创建一个匹配其索引的组\1。
在\(.*\)比赛第一组之后的一切,它的索引\2。
的 *在\(...\) *\(...\)出匹配组的将忽略在其中匹配组1和2之间的空间,可以使用输出来打印\s*(与GNU sed)或[[:space:]]*(标准地),而不是匹配任何间隔字符,而不是只是ASCII SPC为好。
然后在最后我们首先打印匹配的group2 而不是group1之间有一个空格。
awk '{first = $1; $1=""; print $0, first}' file.txt
Run Code Online (Sandbox Code Playgroud)
将第一列存储在变量中,将空白写入第一列,打印整行($0$是整行,现在第一列空白),然后是第一列。