该paste
命令可以将多行合并为一行。例如,如果我有一个文件test.txt
,它包含:
原文
a
aa
aaa
b
bb
bbb
c
cc
ccc
我可以使用命令paste -s -d '\t\t\n' test.txt
来获取:
处理结果
a aa aaa
b bb bbb
c cc ccc
我想知道是否有一个反向命令可以执行相反的粘贴操作。例如,如果我有“处理结果”,我怎样才能得到“原始文本”?
答案1
没有标准命令。
您必须自己做,并且取决于您的输入。
在这种情况下:
tr '\t' '\n' <pasted_file.txt
会给你原来的。
请注意,它假定\t
不会出现在您的原始文件中。
答案2
您可以在处理结果上使用此 sed 命令
sed -e 'y/\t/\n/' processedresult.txt
答案3
您可以将字符替换为 sed 或将字符替换为 tr:
sed -e 's/< old string >/< new string >/g' input-file > output-file
s 表示替换,g 表示替换一行中每次出现的<旧字符串>。如果没有 g,每行只会发生一次替换。
tr '< old char >' '< new char >' < input-file > output-file
答案4
awk版本:
awk -v OFS='\n' '{$1=$1; print}' input-file > output-file