【发布时间】:2018-07-11 19:51:21
【问题描述】:
我试图在将它们保存到文件之前从两个单独的列中删除第一个和最后一个字符。我需要删除的字符是连字符。由于结果中的连字符,我无法删除所有这些。有没有更有效的方法来为此使用 awk?
我目前的想法类似于这个命令。
cat file.txt | awk -F '|' '{print $2, $4}' | sed 's/.//;s/.$//' > newfile.txt
文件示例
1-|-40939-23-|-column-3-|-column-4-|
2-|-9832651-23-|-column-3-|-column-4-|
电流输出
40939-23- -column-4
9832651-23- -column-4
想要的输出
40939-23 column-4
9832651-23 column-4
【问题讨论】:
-
试试
awk -F'|' '{gsub(/^-|-$/,"", $2);gsub(/^-|-$/,"", $4);print $2 " " $4;}' newfile.txt > tmp && mv tmp newfile.txt -
感谢 Wiktor,该解决方案完美运行。