假设我有输入行:
输入:
{x:y} abc det uyt llu
如何处理它,以获得预期的输出:
输出:
{x:y} abc%det%uyt%llu
问题是如何连接字段2-end of line,并在该字符串中用%更改空间 其中separator是空格
我需要修复第一部分{x:y}并为字段2-end of line
实现管道答案 0 :(得分:2)
这是另一个awk
awk '{$1=$1;sub(/%/," ")}1' OFS="%" file
echo '{x:y} abc det uyt llu' | awk '{$1=$1;sub(/%/," ")}1' OFS="%"
{x:y} abc%det%uyt%llu
使用%
和OFS
将所有空格更改为$1=$1
,然后将第一个%
更改为空格。
答案 1 :(得分:1)
你可以使用这个awk:
s='{x:y} abc det uyt llu'
awk '{printf "%s%s", $1, OFS; for (i=2; i<=NF; i++) printf "%s%s", $i, (i==NF)?RS:"%"}' <<< "$s"
{x:y} abc%det%uyt%llu
另一个awk:
awk '{printf "%s%s", $1, OFS; OFS="%"; $1=""; print substr($0, 2)}' <<< "$s"
{x:y} abc%det%uyt%llu