ファイル(myfile.txt
)には次のデータが含まれています。
abc#ab1=23
nrt#
#clb1aX
amd#322
希望の出力:
abc
nrt
clb1ax
amd
私はこれを行うことができます
for i in `cat myfile.txt`
do
s1=`echo $i | cut -d'#' -f1`;
s2=`echo $i | cut -d'#' -f2`;
if [ "$s1" == "" ]; then
echo "$s2"
else
echo "$s1"
fi;
done;
for
if
しかし、1行にawk
orまたはsed
何かを使用するのと同じように、andを使用せずにこれを行う方法はありますか?cut
ベストアンサー1
短いawk
解決策:
awk -F'#' 'NF{ print ($1 != "" ? $1 : $2) }' file
出力:
abc
nrt
clb1aX
amd