我的文本文件中的数据和预期的输出格式如图所示。
我试过:
cat test2.txt | tr -d "\t"
但这是行不通的。请帮忙。因为我必须以预期的输出格式读取文件并进行进一步的循环处理。
答案1
使用 awk:
BEGIN { RS = "" ; }
{
printf "%s %s %s %s %s %s %s\n", $1, $2, $3, $4, $5, $6, $7
}
产生:
WEBA 30-MAR-17 NA NOT_STARTED 01-APR-17 25-MAR-17 Target_Not_Started
WEBA 29-MAR-17 NA NOT_STARTED 01-APR-17 25-MAR-17 Target_Not_Started
WEBA 28-MAR-17 NA STARTED 01-APR-17 25-MAR-17 Target_Started
答案2
如果需要,您可以使用 bash。使用循环和 if 条件,例如:
#!/bin/bash
filename="/root/a.txt"
while read -r line
do
if [ "$line" != "" ]; then
echo $line |tr -d "\n"
else
echo ""
fi
done <"$filename"
答案3
珀尔
perl -l -00pe 'y/\n/ /' yourfile | column -t
塞德
< yourfile \
sed -ne '
/^WEBA/,/^$/!d
/^$/g
s/\n/ /gp
H
/^WEBA/h
' \
| column -t