需要帮助将文本文件中的奇数行和偶数行增量显示到屏幕上。
文本文件
10101
AsPO4IF+tGU=
01010
WvTzUYrxvXY=
00101
CfZzsDDKW98=
卡在下面的脚本中。
result=Textfile
while IFS='' read -r line || [[ -n "$line" ]];
echo "`awk or sed odd line $result`" "`awk or sed even line $result`"
done < "$result"
需要输出
"AsPO4IF+tGU=" "10101"
"WvTzUYrxvXY=" "01010"
"CfZzsDDKW98=" "00101"
一旦文本文件中的 EOF 到达,则停止脚本。
谢谢你的时间。
答案1
您不需要循环文件的行,awk
这正是这方面的专家:
awk '
NR%2 != 0 {last=$0}
NR%2 == 0 {printf "\"%s\" \"%s\"\n",$0,last}
' file
答案2
您sed
也不需要外部循环:
sed -E '$!N;s/(.*)\n(.*)/"\2" "\1"/' file
-E
就是使用扩展的正则表达式,这样更()
容易阅读$!N
如果存在未配对的行,则始终连接 (N
) 模式空间中除最后一行 ( ) 之外的两行$!
s/(.*)\n(.*)/"\2" "\1"/
翻转两行,用空格替换换行符并添加双引号
答案3
我已经通过以下方法完成了
命令:
sed "N;s/\n/ /g" filename | awk '{print $2,$1}'| sed 's/^/"/g'| sed 's/$/"/g'| sed 's/=/"&"/g'
输出
"AsPO4IF+tGU"=" 10101"
"WvTzUYrxvXY"=" 01010"
"CfZzsDDKW98"=" 00101"