数据文件有672列,其中tab作为分隔符,CRLF位于每行的末尾,并且在一行内有效地将一行拆分为多行。
***Current***
row1: col1<\t>col2<\t>col3<\t>col4<\r\n>
row2: col1<\t>col2<\r\n>
col3<\r\n>
col4<\r\n>
***Expected***
row1: col1<\t>col2<\t>col3<\t>col4<\r\n>
row2: col1<\t>col2<\t>col3<\t>col4<\r\n>
答案 0 :(得分:0)
这是脚本reorder.sh
,执行时会创建输出文件expected.txt
#!/bin/bash
input_file=$1;
j=1
for i in `awk '{for(k=1;k<=NF;++k) print $k}' $input_file`
do
if [ $(( $j % 4 )) -eq 0 ]; then
echo $i >> expected.txt
else
echo -n $i" " >> expected.txt
fi
((++j))
done
./reorder.sh current.txt
答案 1 :(得分:0)
以下sed脚本帮助我删除了CRLF字符。
script.sed:join /\$/{N s/\\n// b join }
调用上述脚本的方法
sed -f script.sed chap4 > chap4.new