所以我有一个文本文件,它可能有一个制表符作为其字段分隔符(分隔符),或者可能有一个空格作为字段分隔符。我想检查该文本文件是否已制成表格,否则我将对该文件执行其他操作。我正在使用 bash 脚本。所以我对任何纯 bash、sed、awk、grep 等都持开放态度(注意:它们都是 GNU)。所以我正在考虑这样的结构:
if [if delimiter is tab]; then
#do soemthing
elif [if delimiter is space]; then
#do something else
fi
有什么建议么?如果需要进一步解释,请告诉我。谢谢!
这是一个解释update文本文件的样子:
如果文本文件有制表符作为分隔符,则它在每一行上进行分隔。如果文本文件以空格作为分隔符,则不会对每一行进行分隔。
以下是我可能遇到的文本文件的示例:
分隔符是制表符:
col1 col2 col3
-------
1 2 3
4 5 6
分隔符是空格: (空格在 12 和 3 && 4 和 56 之间)
col1col2col3
-----------
12 3
4 56
假设当文件以制表符分隔时,制表符仅存在于第一行,那么这
if awk '{exit !/\t/}' "$file"; then
: # tab file
else
: # space file
fi
应该做你想做的事。
Also:
if [ -n "$(sed -n '/\t/p;q' "$file")" ]; then
: # tab file
else
: # space file
fi
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)