从每列中删除第一个和最后一个连字符

时间:2018-07-11 11:22:45

标签: unix awk sed

在将它们保存到文件之前,我试图从两个单独的列中删除首字符和最后一个字符。我需要删除的字符是连字符。由于结果中有连字符,因此我无法完全删除所有连字符。有没有更有效的方法来使用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

2 个答案:

答案 0 :(得分:1)

$ awk -F'-[|](-|$)' '{print $2, $4}' file
40939-23 column-4
9832651-23 column-4

答案 1 :(得分:0)

请问您能不能尝试,如果有帮助请告诉我。

for(const email of processedData) {
    if(validateEmail(email) && ++count === 100) break
}

解决方案2: 考虑到您的Input_file始终相同,请使用字段编号。

awk -F"|" '{gsub(/^-|-$/,"",$2);gsub(/^-|-$/,"",$(NF-1));print $2,$(NF-1)}' Input_file